ID: 26286 Comment by: uncoDMX at yahoo dot com Reported By: igg10 at alu dot ua dot es Status: No Feedback Bug Type: Apache2 related Operating System: Windows 2000 PHP Version: 4.3.4 New Comment:
Same problem here. WinXP+SP2 Apache 2.0.52 PHP 4.3.9 MySQL 4.0.1 also tested the site on Linux and it worked. Previous Comments: ------------------------------------------------------------------------ [2004-12-07 22:36:07] oancea at gmail dot com Same problem with: Apache 2.0.52, php 5.0.2, Win XP+SP2. ------------------------------------------------------------------------ [2004-12-01 20:14:00] jkpalmer52 at yahoo dot com Forgot to add that this problem occurs on Windows XP Pro SP2 and that my configuration of Apache 2.0.52 w/ PHP 4.3.6 works just fine with Windows 2000 Pro SP4. ------------------------------------------------------------------------ [2004-12-01 20:09:09] jkpalmer52 at yahoo dot com Experiencing sam with Apache 2.0.52, PHP 4.3.6 using DotProject-Forums module. ------------------------------------------------------------------------ [2004-11-18 03:21:41] foxinforestfire at yahoo dot com Well, after digging through my classes, adding exit() calls to see which line execution stops on, I've reached a conclusion. Perhaps this won't help anyone with their bugs, but it helped mine so I'll post it. Picture this as an example of the stack: [ function a ][ variable foo ][ variable bar ] Then, I call a function to a class which, in its constructor, uses the function that called it, which eventually checks for that class's existance in its records(and it isnt there, because it is only added after the first function exits). So now my stack begins filling with recursive functions and looks like this: [func][func][func][func][func][func][func][func]... And, it continues filling until there is a huge overload, which happens rather quickly, and it throws an error, exiting out of potentially hundreds, or thousands even, of functions, depending on how much room they each require. So, check for recursive usage of objects, because it can get PHP into an "infinite" loop that it doesn't recognize because of its complexity, and is relatively simple to overlook because when you read a line, you don't think like the stack does(save class pointer THEN move into the constructor(ie, C++ because of previous space allocation) vs. move into function BEFORE saving class pointer to memory address x because its not pre-allocated) :P ------------------------------------------------------------------------ [2004-11-18 02:59:16] foxinforestfire at yahoo dot com I've found that the error seems to occur with a high usage of references. I've had it occur to me twice under different conditions. Situation A: I have class A which accepts a pointer to class B and calls functions recursively down the class B and any classes it has pointers to. The error occured when I made a minor programming mistake and added a class to itself throwing PHP into a recursive infinite loop. Situation B(as of yet unresolved): I have several classes which require pointers to one another to function. During a class's construction, it uses several global functions that I have which check to see if a specific instance of a class exits(they all have IDs) and if so it returns a reference to the existing class. If not, it creates a new instance, saves it, and returns a reference. I'm not sure what is going on, but I'm relatively sure it is another recursive error, because I could potentially step through the classes infinitively. But, I had hoped this wouldn't be a problem seeing as I am using pointers/references, and not continuously creating new copies of objects. Yet, the problem persists and I'm still having issues with apache being killed off by windows. ------------------------------------------------------------------------ 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/26286 -- Edit this bug report at http://bugs.php.net/?id=26286&edit=1