php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8885 Child processes hang on exit
Submitted: 2001-01-24 10:54 UTC Modified: 2001-04-10 09:50 UTC
From: nick at shadowlink dot net Assigned:
Status: Closed Package: Reproducible Crash
PHP Version: 4.0.4pl1 OS: 4.1 BSDI BSD/OS
Private report: No CVE-ID: None
 [2001-01-24 10:54 UTC] nick at shadowlink dot net
Child (or the main) processes hang whenever they try to exit.

This will happen when
maxrequestsperchild is reached (I'm assuming) and a child tries to die naturally
a child process is killed manually
the main process can't bind to port/etc

Here's a ps to see what it looks like

USER       PID %CPU %MEM   VSZ  RSS  TT  STAT STARTED       TIME COMMAND
www443   14066  5.6  0.3  6220  988  ??  R     8:00AM    0:06.52 /var/www443/bin/httpd
www443   14067  5.3  0.3  6216 1000  ??  R     8:00AM    0:07.20 /var/www443/bin/httpd
www443   14063  5.4  0.3  6220 1000  ??  R     8:00AM    0:07.17 /var/www443/bin/httpd
www443   14065  5.4  0.3  6212  980  ??  R     8:00AM    0:06.63 /var/www443/bin/httpd
www443   14064  5.5  0.3  6216 1004  ??  R     8:00AM    0:07.57 /var/www443/bin/httpd
www443   19823  5.9  0.2  6032  608  ??  R     8:26AM    9:31.91 /var/www443/bin/httpd
root     14027  0.0  0.1  6032  404  ??  Ss    8:00AM    0:00.18 /var/www443/bin/httpd
www443   14322  0.0  0.2  6208  724  ??  S     8:01AM    0:00.22 /var/www443/bin/httpd
www443   14346  0.0  0.2  6208  736  ??  S     8:01AM    0:00.23 /var/www443/bin/httpd
www443   19726  0.0  0.2  6212  744  ??  S     8:25AM    0:00.17 /var/www443/bin/httpd
www443   19732  0.0  0.2  6212  732  ??  S     8:25AM    0:00.14 /var/www443/bin/httpd
www443   19733  0.0  0.2  6212  724  ??  S     8:25AM    0:00.09 /var/www443/bin/httpd

as you can see, the top 5 processes are hung.  A sigkill is the only way to kill them.

Attaching to one of the hung processes with gdb gives the backtrace listed at the
bottom of this report.


We can only produce this problem with the following configuration:

(Apache 1.3.12 or 1.3.14)
./configure --prefix=$prefix --with-port=$port --enable-module=most \
 --enable-module=rewrite --enable-module=status --with-layout=Apache \
 --sysconfdir=$prefix/conf --enable-module=so

(mod_ssl 2.6.5-1.3.12 or x.x.x-1.3.14)
./configure --with-apache=../apache_1.3.12 --prefix=/var/www443 --with-ssl=/usr/local/ssl

(php 4.0.1 - 4.0.4pl1)
./configure  --with-mysql --with-xml --with-gd=/usr/local \
 --with-apxs=/var/www443/bin/apxs --enable-track-vars --enable-bcmath \
 --enable-ftp --with-jpeg-dir=/usr/local/lib --with-ttf

If we leave out PHP or mod_ssl, the problem goes away.
Also, with older versions of BSDi, this problem does not occure. (using the same configuration as above)



Attaching to program `/var/www443/bin/httpd', process 19823    
Reading symbols from /shlib/libdl.so...done.
Reading symbols from /shlib/libgcc.so.1...done.
Reading symbols from /shlib/libc.so.1...done.
Reading symbols from /shlib/ld-bsdi.so...done.
Reading symbols from /var/www443/libexec/libphp4.so...done.
Reading symbols from /usr/local/lib/libttf.so.2...done.
Reading symbols from /shlib/libm.so.0.0...done.
0x481a5a54 in __deregister_frame_info ()
(gdb) bt
#0  0x481a5a54 in __deregister_frame_info ()
#1  0x8069e7a in __do_global_dtors_aux ()
#2  0x8163fa4 in _fini ()
#3  0x48248028 in exit ()
#4  0x80c3e1f in clean_child_exit (code=0) at http_main.c:517
#5  0x80c6ac2 in child_main (child_num_arg=10) at http_main.c:4057
#6  0x80c6f8c in make_child (s=0x81ad034, slot=10, now=980349966) at http_main.c:4435
#7  0x80c7305 in perform_idle_server_maintenance () at http_main.c:4599
#8  0x80c77f5 in standalone_main (argc=1, argv=0x8047ec4) at http_main.c:4831
#9  0x80c7dc3 in main (argc=1, argv=0x8047ec4) at http_main.c:5092
#10 0x8069e37 in __start ()
(gdb) quit


# /var/www443/bin/httpd -l
Compiled-in modules:
  http_core.c
  mod_vhost_alias.c
  mod_env.c
  mod_define.c
  mod_log_config.c
  mod_mime_magic.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_info.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_access.c
  mod_auth.c
  mod_auth_anon.c
  mod_auth_dbm.c
  mod_digest.c
  mod_proxy.c
  mod_cern_meta.c
  mod_expires.c
  mod_headers.c
  mod_usertrack.c
  mod_unique_id.c
  mod_so.c
  mod_setenvif.c
  mod_ssl.c
  mod_frontpage.c

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-01-27 15:41 UTC] nick at shadowlink dot net
More info...  If I don't compile ttf into gd, it doesn't crash...
 [2001-03-09 21:43 UTC] sniper@php.net
Does upgrading mod_ssl & openssl help?

--Jani

 [2001-04-10 09:50 UTC] sniper@php.net
No feedback. If this happens with soon to be released PHP 4.0.5 too, reopen this bug report.

--Jani

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 07:01:28 2024 UTC