From: stolle at web dot de
Operating system: Windows XP
PHP version: 5.0.2
PHP Bug Type: Reproducible crash
Bug description: Apache worker crash sending data
Description:
------------
Apache Support has forwarded me to use the PHP-Reporting System.
Try the small script.
The used file "c:\temp\x3.iso" may be of a size a 20 MB or so. I used an
iso-Image of something. But
content doesn't matter.
If the file-Transfer is interrupted by the client (IE closed f.e.) the
Apache worker crashes.
If you eleminate the "while" everything is ok.
This is only a simplified Script. Everytime when sending data throug an
php script, from whithin a while-loop, or any other language construct,
the worker crashes when connection is lost.
I'm using XP SP2, Apache 2.0.52 and PHP 5.0.2
I tried the 3 Apache config lines:
EnableSendfile Off
EnableMMAP Off
Win32DisableAcceptEx
No difference. Worker crashes.
We can't continue developing our php-Application (Alternativ User
Interface
for Multimedia Home-Devices), Subproject: Streaming Video-Content, if we
can't
fix this bug.
Help would be great.
sorry for my english ;)
Yours
Andreas
Reproduce code:
---------------
<?php
error_log( "Hei" );
$fh = fopen( "c:/temp/x3.iso", "rb" );
while ( !feof($fh) )
fpassthru( $fh );
?>
Expected result:
----------------
Apache worker should not crash if connection is lost.
Actual result:
--------------
[Thu Nov 11 17:17:02 2004] [notice] Parent: child process exited with
status
4294967295 -- Restarting.
[Thu Nov 11 17:17:03 2004] [notice] Parent: Created child process 4968
[Thu Nov 11 17:17:03 2004] [notice] Disabled use of AcceptEx() WinSock2
API
[Thu Nov 11 17:17:03 2004] [notice] Child 4968: Child process is running
[Thu Nov 11 17:17:03 2004] [notice] Child 4968: Acquired the start mutex.
[Thu Nov 11 17:17:03 2004] [notice] Child 4968: Starting 250 worker
threads.
[Thu Nov 11 17:17:03 2004] [notice] Child 4968: Listening on port 8001.
--
Edit bug report at http://bugs.php.net/?id=30790&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=30790&r=trysnapshot4
Try a CVS snapshot (php5.0):
http://bugs.php.net/fix.php?id=30790&r=trysnapshot50
Try a CVS snapshot (php5.1):
http://bugs.php.net/fix.php?id=30790&r=trysnapshot51
Fixed in CVS: http://bugs.php.net/fix.php?id=30790&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=30790&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=30790&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=30790&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=30790&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=30790&r=support
Expected behavior: http://bugs.php.net/fix.php?id=30790&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=30790&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=30790&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=30790&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=30790&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=30790&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=30790&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=30790&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=30790&r=float
MySQL Configuration Error: http://bugs.php.net/fix.php?id=30790&r=mysqlcfg