From: [EMAIL PROTECTED] Operating system: linux 2.4.18 PHP version: 4.2.3 PHP Bug Type: Apache related Bug description: apache&suexec&php-cgi&ignore_user_abort -> problem with cancelled connections
Under very specific circumstances, php goes in tight infinite loop eating all cpu after request is cancelled. Configuration: php 4.2.3 as cgi apache 1.3.27 php configured with Action directive, (important) using suexec. Conditions for problem to occur in script: 1.ignore_user_abort(true) 2.sending any http header 3.sending any body content AFTER http header 4. connection is aborted before all data are sent to client. Script to reproduce problem: ---- CUT ---- <? ignore_user_abort(true); header("X-Whatever: whatever"); ?> whatever ---- CUT ---- Problem doesn't exist with mod_php or php-cgi without suexec. It appears that after apache has closed connection php is still trying to write output and loops for unknown reason. I'm not sure if this is fault of php, apache or suexec, but I think it could be fixed in php. -- Edit bug report at http://bugs.php.net/?id=20053&edit=1 -- Try a CVS snapshot: http://bugs.php.net/fix.php?id=20053&r=trysnapshot Fixed in CVS: http://bugs.php.net/fix.php?id=20053&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=20053&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=20053&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=20053&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=20053&r=support Expected behavior: http://bugs.php.net/fix.php?id=20053&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=20053&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=20053&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=20053&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=20053&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=20053&r=dst IIS Stability: http://bugs.php.net/fix.php?id=20053&r=isapi