From: Operating system: Linux PHP version: 5.4.0RC7 Package: Scripting Engine problem Bug Type: Bug Bug description:GC not called prior to memory exhausted error
Description: ------------ This affects all versions of PHP. In a script that is about to run out of memory, gc_collect_cycles() should be called as this can sometimes prevent the script from running out of memory. Example: I have a non-blocking server I wrote in PHP. If there are several thousand connections, the script will run out of memory. However, if the exact same script with the exact same load (using apache benchmark) is run while calling gc_collect_cycles() every half second, there are no out-of-memory issues. Test script: --------------- The source code for PHP will reveal that garbage collection is not run as a last ditch effort to continue execution within the memory constraints specified by the user. Expected result: ---------------- I expect PHP to run garbage collection when memory is nearly exhausted to prevent a memory error. Actual result: -------------- PHP will exhaust memory even when it is not necessary for it to exhaust memory. -- Edit bug report at https://bugs.php.net/bug.php?id=60982&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=60982&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=60982&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=60982&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=60982&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=60982&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=60982&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=60982&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=60982&r=needscript Try newer version: https://bugs.php.net/fix.php?id=60982&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=60982&r=support Expected behavior: https://bugs.php.net/fix.php?id=60982&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=60982&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=60982&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=60982&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=60982&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=60982&r=dst IIS Stability: https://bugs.php.net/fix.php?id=60982&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=60982&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=60982&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=60982&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=60982&r=mysqlcfg