ID:               40556
 User updated by:  unreal at slashorg dot net
 Reported By:      unreal at slashorg dot net
 Status:           Open
 Bug Type:         CGI related
 Operating System: Linux 2.6.18
 PHP Version:      5.2.1
 Assigned To:      dmitry
 New Comment:

Some more information:

The issue only seems to appear when the client abandons the connection
without ending the http session properly. For example, we have an
antivirus gateway appliance that drops the connection with a tcp-reset
when the browser cancels. PHP doesn't seem to get informed that the
connection has ended and becomes non responsive until some timeout (?)
occures. If I use "lsof" while the php process is blocked, I can see the
process is still accessing the download file...


Previous Comments:
------------------------------------------------------------------------

[2007-03-23 14:55:39] unreal at slashorg dot net

Here's a backtrace, tell me if this helps you:

(gdb) attach 1774
Attaching to process 1774.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ................ done
0x900101b7 in write ()
(gdb) backtrace
#0  0x900101b7 in write ()
#1  0x004007c4 in safe_write (req=0x0, buf=0xbffffeb4, count=0) at
/home/unreal/compile/php-5.2.1/sapi/cgi/fastcgi.c:351
#2  0x00002095 in start ()
(gdb)

------------------------------------------------------------------------

[2007-03-23 10:11:57] [EMAIL PROTECTED]

>I guess I have to recompile php with debug support?
Yes, rebuild with --enable-debug is required.
- start PHP/FastCGI with just one process (-processes 1) 
- figure out pid of PHP (ps afx | grep php or see Apache error_log)
- start gdb (just type gdb and enter), then type "attach <pid of php>",
this way you'll attach to already running PHP process.
- type "continue" for the process to continue running.
- after that reproduce the problem and see if the process stops.
- if it does, type "backtrace" and paste the output here.
- if it doesn't we'll continue in the next post.

You can also create an account on the server, I'll try to reproduce it
myself. 

------------------------------------------------------------------------

[2007-03-06 13:27:53] unreal at slashorg dot net

Hello,

I haven't really used gdb before, I obtain a backtrace? I guess I have
to recompile php with debug support?

Thanks.

------------------------------------------------------------------------

[2007-03-02 10:14:47] [EMAIL PROTECTED]

I am still not able to reproduce the problem.
Could you please attach debugger to stuck php process and show its
backtrace.

------------------------------------------------------------------------

[2007-02-22 12:01:19] unreal at slashorg dot net

OK, I've done quite a lot more testing, and here are the results
(Apache 2.0.59/mod_fastcgi 2.4.2/PHP 5.2.1):

- I cannot reproduce the bug with your code either.

- The following code causes PHP workers to lock up if you abort during
download (and only if you abort):

             http://www.slashorg.net/ex/crash.txt

Note: notice the "session_start();" line

- If I remove the "session_start();" line, PHP doesn't crash anymore,
even when I abort the download.


It seems this bug is more complicated than I thought, I hope you'll be
able to reproduce it.

Thanks for your help.

------------------------------------------------------------------------

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/40556

-- 
Edit this bug report at http://bugs.php.net/?id=40556&edit=1

Reply via email to