ID:               31508
 User updated by:  yml at dtlink dot com
 Reported By:      yml at dtlink dot com
 Status:           Wont fix
 Bug Type:         Apache related
 Operating System: Linux (RedHat 9)
 PHP Version:      4CVS-2005-01-13
 New Comment:

Problem found!

Turns out I have been incorrectly using ()'s in my returns from methods
that return references as in:

function &someFunc()
{
return( $somevar );
}

this did not generate any errors and has worked for /ages/ in a very
large body of code. 

However, it looks like this was causing the sit and spin phenomenon in
rare case and also the array references/symbol table corruption problem
I was noticing. (at least in test cases that were very reliably
reproducing the problem.)

Makes one wonder why it worked at all.


Previous Comments:
------------------------------------------------------------------------

[2005-01-21 09:24:48] yml at dtlink dot com

Maybe we are miscommunicating. This is not an infinite recursion
problem. As you can see in the bug reports below, if I compile PHP with
--enable-debug it works like a champ (i.e. no spinning) and clearly
lists PHP /INTERNAL/ buffer overruns in the debug log. 

This is not an endless recursion problem. It is most likely a symbol
table or stack management bug.

At most I might have 20 levels of recursion when I parse XML documents
but no more. 

As I've mentioned a few times I believe it may be similar or even
related to a 100% reproducible PHP 5.0 bug that I have a test script
for.

------------------------------------------------------------------------

[2005-01-21 09:15:08] [EMAIL PROTECTED]

It can do that, but not infinitive recursion. The limit is about 2500
levels of function calls deep, but that may variate quite some
depending on your situation.

------------------------------------------------------------------------

[2005-01-21 02:17:50] yml at dtlink dot com

Ummm. You're not really saying that PHP can't do recursion, are you?
That would be ludicrous.

------------------------------------------------------------------------

[2005-01-21 01:54:29] [EMAIL PROTECTED]

What you are experiencing is a stack smash caused by recurssion. This
is unlikely to ever be fixed and is a good example of why not to use
recursive functions.

------------------------------------------------------------------------

[2005-01-21 00:51:17] yml at dtlink dot com

yes, I make alot of use of recursion. It's a system that constructs
trees of objects based on an XML source file. 

I do a tremendous amount of object reference passing as well.

The first version was built in 2001 and it's been growing since. I've
run into several PHP symbol table corruption bugs since that time; most
I haven't bothered to report since they're so difficult to reproduce.
PHP versions since 4.3.4 have been /much/ more stable; until this bug
which seems to be caused by a particular combination of object trees.

------------------------------------------------------------------------

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/31508

-- 
Edit this bug report at http://bugs.php.net/?id=31508&edit=1

Reply via email to