From: tlamay at cte1 dot com Operating system: Windows 2003 PHP version: 4.3.10 PHP Bug Type: Apache2 related Bug description: FATAL erealloc() Restarts
Description: ------------ This problem occurs with PHP 4.3.9 and 4.3.10 and CVS versions of 4.3.11. Below is a snippet from Apache 2.0.52 error log. This restarting problem does not occur with 4.3.6 and 4.3.7. I have not fully tested 4.3.8. The restarts occur at regular intervals, and the least frequently with 4.3.10 (averaging every 30-45m). The Apache child thread restarts causing all web clients to disconnect (I guess this issue is particularly bad on Windows since there's only one child?) This can cause my ecommerce customers to loose POST data or mess up their orders in other ways, and at least cause time out issues on pages. I would love to know how to backtrace on Windows but I cant seem to find instructions. PHP error log isnt showing me anything relevant to the problem. This is on a live system so Im not sure what code is causing this. The server primarily runs osCommerce and vBulletin 3, all pages are pretty much PHP. I've tried increasing the memory allocation for PHP scripts from 8m to 40m, but this hasn't had an effect. Im willing to try other configurations as long as it doesn't disrupt my live websites too badly, to see where the bug might be. In regards to the system, it's currently running 1G of memory and is only using about half that at any given time. I will be upgrading the server to 3G of memory, however, Im not sure the physical memory is a limitation, apart from a memory leak somewhere. Thanks Wed Feb 16 11:20:58 2005] [notice] Parent: Created child process 5376 [Wed Feb 16 11:20:58 2005] [notice] Disabled use of AcceptEx() WinSock2 API [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Child process is running [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Acquired the start mutex. [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Starting 750 worker threads. [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Listening on port 443. [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Listening on port 443. [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Listening on port 80. [Wed Feb 16 11:21:06 2005] [notice] Child 5376: Listening on port 80. FATAL: erealloc(): Unable to allocate 22528 bytes [Wed Feb 16 11:42:05 2005] [notice] Parent: child process exited with status 1 -- Restarting. [Wed Feb 16 11:42:07 2005] [notice] Parent: Created child process 388 [Wed Feb 16 11:42:07 2005] [notice] Disabled use of AcceptEx() WinSock2 API [Wed Feb 16 11:42:14 2005] [notice] Child 388: Child process is running [Wed Feb 16 11:42:14 2005] [notice] Child 388: Acquired the start mutex. [Wed Feb 16 11:42:14 2005] [notice] Child 388: Starting 750 worker threads. [Wed Feb 16 11:42:14 2005] [notice] Child 388: Listening on port 443. [Wed Feb 16 11:42:14 2005] [notice] Child 388: Listening on port 443. [Wed Feb 16 11:42:14 2005] [notice] Child 388: Listening on port 80. [Wed Feb 16 11:42:14 2005] [notice] Child 388: Listening on port 80. FATAL: erealloc(): Unable to allocate 22528 bytes [Wed Feb 16 12:26:05 2005] [notice] Parent: child process exited with status 1 -- Restarting. [Wed Feb 16 12:26:06 2005] [notice] Parent: Created child process 6032 [Wed Feb 16 12:26:06 2005] [notice] Disabled use of AcceptEx() WinSock2 API [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Child process is running [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Acquired the start mutex. [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Starting 750 worker threads. [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Listening on port 443. [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Listening on port 443. [Wed Feb 16 12:26:14 2005] [notice] Child 6032: Listening on port 80. [Wed Feb 16 12:26:15 2005] [notice] Child 6032: Listening on port 80. Terminating on signal SIGTERM(15) [Wed Feb 16 12:33:19 2005] [notice] Parent: Created child process 2044 [Wed Feb 16 12:33:19 2005] [notice] Disabled use of AcceptEx() WinSock2 API [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Child process is running [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Acquired the start mutex. [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Starting 750 worker threads. [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Listening on port 443. [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Listening on port 443. [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Listening on port 80. [Wed Feb 16 12:33:26 2005] [notice] Child 2044: Listening on port 80. -- Edit bug report at http://bugs.php.net/?id=32002&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=32002&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=32002&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=32002&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=32002&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=32002&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=32002&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=32002&r=needscript Try newer version: http://bugs.php.net/fix.php?id=32002&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=32002&r=support Expected behavior: http://bugs.php.net/fix.php?id=32002&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=32002&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=32002&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=32002&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=32002&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=32002&r=dst IIS Stability: http://bugs.php.net/fix.php?id=32002&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=32002&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=32002&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=32002&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=32002&r=mysqlcfg