#37120 [NoF->Opn]: mod_php5 + apache2 + mail() = hung process
| From: | brlcad at mac dot com | Date: | Wed, 21 Feb 2007 21:20:32 +0000 |
| Subject: | #37120 [NoF->Opn]: mod_php5 + apache2 + mail() = hung process | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-109286@lists.php.net to get a copy of this message | ||
ID: 37120
User updated by: brlcad at mac dot com
Reported By: brlcad at mac dot com
-Status: No Feedback
+Status: Open
Bug Type: Apache2 related
Operating System: FreeBSD 5.2.1
PHP Version: 5.1.2
New Comment:
To hopefully revive this issue, I'm using the latest release
5.2.1 version of php (from FreeBSD ports), with the same setup
and constraints as mentioned before in this report and still
see the same crashes (httpd exits on signal 6) during a mail()
call from mod_php5.
Previous Comments:
------------------------------------------------------------------------
[2006-08-10 21:42:15] spike at indra dot com
I am seeing the same behavor in 4.4.3. I wrote a script to replace
sendmail and confirmed that the data is being written to the pipe, but
that the pipe is not being closed. I then stuck debuging statements in
mail.c and found the it hangs on pclose(). Again, this is only in
apache, not from the command line.
There may be a connection to this FreeBSD bug report:
http://www.freebsd.org/cgi/query-pr.cgi?pr=86421
------------------------------------------------------------------------
[2006-08-09 01:00:01] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2006-08-01 22:23:20] tony2001@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
------------------------------------------------------------------------
[2006-04-18 23:16:09] brlcad at mac dot com
Not sure how helpful this will be, but here are several
stack traces while it was hung. Interestingly enough,
if I ctrl-c'd in gdb during the hang and continued, the
page would unhang and return a mail() failure.
(gdb) run -X -f /usr/local/etc/apache2/httpd.conf
(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging
symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...
^C
Program received signal SIGINT, Interrupt.
0x283d92af in poll () from /lib/libc.so.5
(gdb) where
#0 0x283d92af in poll () from /lib/libc.so.5
#1 0x2847ba51 in _thread_kern_sched_state_unlock ()
from /usr/lib/libc_r.so.5
#2 0x2847b445 in _thread_kern_scheduler () from /usr/
lib/libc_r.so.5
(gdb) c
Continuing.
[ NOTE: HERE THE PAGE UNHUNG ]
^C
Program received signal SIGINT, Interrupt.
0x283d92af in poll () from /lib/libc.so.5
(gdb) where
#0 0x283d92af in poll () from /lib/libc.so.5
#1 0x2835977e in apr_poll () from /usr/local/lib/
apache2/libapr-0.so.9
#2 0x28359f32 in apr_wait_for_io_or_timeout () from /
usr/local/lib/apache2/libapr-0.so.9
#3 0x2835052a in apr_socket_recv () from /usr/local/
lib/apache2/libapr-0.so.9
#4 0x28350e9d in apr_recv () from /usr/local/lib/
apache2/libapr-0.so.9
#5 0x080705f0 in ap_lingering_close ()
#6 0x080640ab in child_main ()
#7 0x0806417c in make_child ()
#8 0x080642c2 in startup_children ()
#9 0x080646c2 in ap_mpm_run ()
#10 0x0806b7d3 in main ()
#11 0x0805cfd2 in _start ()
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x283d92af in poll () from /lib/libc.so.5
(gdb) where
#0 0x283d92af in poll () from /lib/libc.so.5
#1 0x2847ba51 in _thread_kern_sched_state_unlock ()
from /usr/lib/libc_r.so.5
#2 0x2847b445 in _thread_kern_scheduler () from /usr/
lib/libc_r.so.5
(gdb) c
Continuing.
[ NOTE: HERE THE PAGE UNHUNG ]
^C
Program received signal SIGINT, Interrupt.
0x283d92af in poll () from /lib/libc.so.5
(gdb) where
#0 0x283d92af in poll () from /lib/libc.so.5
#1 0x2835977e in apr_poll () from /usr/local/lib/
apache2/libapr-0.so.9
#2 0x28359f32 in apr_wait_for_io_or_timeout () from /
usr/local/lib/apache2/libapr-0.so.9
#3 0x2835052a in apr_socket_recv () from /usr/local/
lib/apache2/libapr-0.so.9
#4 0x28350e9d in apr_recv () from /usr/local/lib/
apache2/libapr-0.so.9
#5 0x080705f0 in ap_lingering_close ()
#6 0x080640ab in child_main ()
#7 0x0806417c in make_child ()
#8 0x080642c2 in startup_children ()
#9 0x080646c2 in ap_mpm_run ()
#10 0x0806b7d3 in main ()
#11 0x0805cfd2 in _start ()
(gdb) quit
------------------------------------------------------------------------
[2006-04-18 22:47:43] brlcad at mac dot com
I'll give that a try, though this is on a very heavy
loaded production machine (hundreds of web hits per
minute) -- I'll need to wait for the load to settle a
little, hopefully later tonight.
That said, in the meantime I thought I'd share some more
insight testing. I fully replaced sendmail with qmail
to make sure it wasn't something particular with the
configuration of sendmail. Again, the machine has no
problems sending e-mail on the command line or with mail
clients, but mod_php5 hangs on the mail() call.
Curiously enough, before installing qmail if I made the
clientmqueue dir unreadable so that sendmail reported an
error/failure, the mail() call does return immediately
(reporting a failure return code) so the hanging does
seem to be specific to when the mail 'should' go through
correctly.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/37120
--
Edit this bug report at http://bugs.php.net/?id=37120&edit=1