ID: 21812 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Feedback +Status: Open Bug Type: Reproducible crash Operating System: Win2000 PHP Version: 4.3.0 New Comment:
The require_once error has not occurred when using 80Mb. The original require structure ended up including every component in the system. I added a few if statements to include only those components required for the script. The original mess might have used up the default 8Mb of memory. My clean version probably uses less than 1 Mb for my code. I am using the PHP binary compiled with all options. I think that comes to about 4 Mb. If that 4 Mb is loaded in to the default 8Mb when running PHP as a module then my original code would have easily used the remaining 4 Mb. Changing the allocation to 80Mb may have, in effect, increased available memory from 4 Mb to 76 Mb. Previous Comments: ------------------------------------------------------------------------ [2003-01-22 17:28:25] [EMAIL PROTECTED] Has the change on memory_limit entry solved the require_once problem too? ------------------------------------------------------------------------ [2003-01-21 21:27:16] [EMAIL PROTECTED] memory_limit = 80M in php.ini fixed the XML process error. It can now read the full XML file without blowing up Apache. ------------------------------------------------------------------------ [2003-01-21 21:07:24] [EMAIL PROTECTED] I found a new error causing the same error message from Apache 2. This error is from an XML processing loop. I think the Apache 2 error message must be issued any time Apache runs out of memory. Perhaps PHP is trampling over the end of it's memory allocation or something similar. I will try a few more tests then increase PHP's memory allocation in php.ini and see if that fixes the problem. ------------------------------------------------------------------------ [2003-01-21 20:26:06] [EMAIL PROTECTED] require_once(); Parse error: parse error, unexpected ')' in C:\webapps\display.php on line 10 require_once(''); Fatal error: main() [function.main]: Failed opening required '' (include_path='.;c:/include;c:/') in C:\webapps\display.php on line 10 require_once('cc'); Warning: main(cc) [function.main]: failed to create stream: No such file or directory in C:\webapps\display.php on line 10 Fatal error: main() [function.main]: Failed opening required 'cc' (include_path='.;c:/include;c:/') in C:\webapps\display.php on line 10 require_once(array('cc')); Notice: Array to string conversion in C:\webapps\display.php on line 10 Warning: main(Array) [function.main]: failed to create stream: No such file or directory in C:\webapps\display.php on line 10 Fatal error: main() [function.main]: Failed opening required 'Array' (include_path='.;c:/include;c:/') in C:\webapps\display.php on line 10 The error does not occur when require_once() receives a simple non string. The error occured when the non string was an array of varied elements including other arrays and possibly objects. The error occured repeatedly until I found the offending assignment statement. I tried to reproduce the error on the first require_once in the script but did not succeed. The original error was deep in a script with several requires and some requires including scripts containing requires. I have now changed the script to a less complicated set of requires and may not be able to reproduce the depth. It is possible the crash was caused by the requires looping on themselves but that type of error usually requires a second or two before Apache runs out of memory (currently over 500 Mb free). The crashes were instant. php.ini has nothing set to increase available memory or change safe mode or anything else. It runs as a module. ------------------------------------------------------------------------ [2003-01-21 19:38:21] [EMAIL PROTECTED] Sorry, I just mistook the platform is *nix. As I can't reproduce this on my Linux box, this problem is likely to be Windows specific. Does Apache segfault when giving a non-existent file name to require_once() rather than an array? ------------------------------------------------------------------------ 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/21812 -- Edit this bug report at http://bugs.php.net/?id=21812&edit=1