Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 332608

Summary: PDT causes stack overflow errors
Product: z_Archived Reporter: Timo A. Hummel <privat>
Component: PDTAssignee: PHP Core <php.core-inbox>
Status: CLOSED FIXED QA Contact: Ilina Stefanova <ilina.s>
Severity: critical    
Priority: P3 CC: kalin.a
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Timo A. Hummel CLA 2010-12-15 05:19:07 EST
During development, eclipse suddenly reported many stack overflow errors. The cause for this was a simple code like this (inside a quite big project):

class Foo extends Bar {}

I was not able to correct the code from within eclipse, because once I close the error message, the same pops up again. I cannot give you a reproduce case, since I would have to send you quite a few MB of code for that. My heap and stack is set to 1024M each.

It is important that if such a thing like a stack overflow error occurs, that it occurs only once, because there is no way to debug or fix the code which causes this.

If you have hints on how to create a stripped down reproduce case, just tell me. I can provide VNC access to my machine if required.


-- Configuration Details --
Product: Eclipse 1.3.1.20100913-1228 (org.eclipse.epp.package.php.product)
Installed Features:
 org.eclipse.platform 3.6.1.r361_v20100909-9gF78GrkFqw7GrsZnvz0JWNTeb6fue6896L
Comment 1 xu jiaxi CLA 2010-12-15 05:23:19 EST
Could you attach any log of the errors?
Comment 2 Timo A. Hummel CLA 2010-12-15 05:23:50 EST
The exact error is:

An internal error occurred during: "Processing Dirty Regions".
java.lang.StackOverflowError

Backtrace:

eclipse.buildId=M20100909-0800
java.version=1.6.0_23
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Framework arguments:  -product org.eclipse.epp.package.php.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.php.product

This is a continuation of log file /home/felicitus/public_html/.metadata/.bak_0.log
Created Time: 2010-12-15 11:06:52.631

Error
Wed Dec 15 11:21:29 CET 2010
Unhandled event loop exception

java.lang.StackOverflowError
	at java.util.HashMap.put(HashMap.java:385)
	at java.util.HashSet.add(HashSet.java:200)
	at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:299)
	at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
	<above 2 messages repeated a few hundred times>
Comment 3 xu jiaxi CLA 2010-12-15 05:41:20 EST
I think this has been fixed in HEAD code.
See bug #331399
Comment 4 Timo A. Hummel CLA 2010-12-18 01:15:19 EST
It seems that adding bootstrap.php to the ignore list (as outlined in bug 332880), the issue goes away. This bug can be set to fixed once bug 332880 is fixed.
Comment 5 Timo A. Hummel CLA 2011-03-08 08:30:31 EST
I tested today with Eclipse 3.7, the issue still exists.

Error log:

!ENTRY org.eclipse.core.jobs 4 2 2011-03-08 14:05:16.209
!MESSAGE An internal error occurred during: "Processing Dirty Regions".
!STACK 0
java.lang.StackOverflowError
        at org.eclipse.php.internal.core.ast.nodes.TypeBinding.isUnknown(TypeBinding.java:890)
        at org.eclipse.php.internal.core.ast.nodes.TypeBinding.getSuperclass(TypeBinding.java:496)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:306)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.innerFindOverriddenMethodInHierarchy(Bindings.java:308)
        at org.eclipse.php.internal.core.ast.nodes.Bindings.findOverriddenMethodInHierarchy(Bindings.java:295)
Comment 6 Timo A. Hummel CLA 2011-03-08 08:33:49 EST
Is there a newer release to which I could upgrade?
Comment 7 Zhongwei Zhao CLA 2011-04-14 01:05:28 EDT
this has been fixed in HEAD code,but you have to wait for the next release,sorry for this.
Comment 8 Kalin CLA 2011-07-27 06:33:02 EDT
No longer reproducible.
Closing...