ID: 37120 Comment by: spike at indra dot com Reported By: brlcad at mac dot com Status: No Feedback Bug Type: Apache2 related Operating System: FreeBSD 5.2.1 PHP Version: 5.1.2 New Comment:
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 Previous Comments: ------------------------------------------------------------------------ [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] [EMAIL PROTECTED] 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. ------------------------------------------------------------------------ [2006-04-18 21:30:49] [EMAIL PROTECTED] Please try to reproduce it with only one Apache process (httpd -X) and if yes - get a GDB backtrace of the place where it freezes. ------------------------------------------------------------------------ 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