I get several GC overhead limit exceeded errors after my Eclipse has been churning away for a while at analyzing a small example file using the WebDSL syntax I converted from SDF2 to SDF3 using the builder. I haven’t been able to reproduce this in a small project, but I believe this is caused by at least a combination of: (1) missing RTG rules (for example when used with the ast syntax), (2) the RTG contains only rules for code completion generated by SDF3, (3) there is a to-outline-label rewrite rule generated in Outliner.generated.str.

For example, this partial syntax:

Definition = Function
Function.Function = <function <ID> ( <{FormalArg ","}*> ) <FunctionReturn> <Block>> 
FunctionReturn = <> {ast("SimpleSort(\"Void\")")}
FunctionReturn = <: <Type>> {ast("<1>")}
FormalArg.Arg = <<ID> : <Type>>
Block.Block = <{ <Property*> }>

results in these RTG rules for Function:

 Function                 -> COMPLETION-Function(CONTENTCOMPLETE)

and this outliner strategy:

to-outline-label = ?Function(<id>, _, _, _)

This compiles successfully, but when I try to analyze this code:

function foo(i:Int,b:Bool):String{
    var x := 2 + null;

I get these errors, after which Eclipse crashes:

!ENTRY org.strategoxt.imp.runtime 4 0 2014-08-05 11:50:06.977
!MESSAGE Could not create error marker: Constructor Function/4 not declared
java.io.FileNotFoundException: L/WebDSL/editor/WebDSL-Outliner.generated.str
    at org.strategoxt.imp.runtime.parser.ast.AstMessageHandler.addMarker(AstMessageHandler.java:119)
    at org.strategoxt.imp.runtime.parser.ast.AstMessageHandler.addMarker(AstMessageHandler.java:109)
    at org.strategoxt.imp.runtime.parser.ast.AstMessageHandler.addMarker(AstMessageHandler.java:89)
    at org.strategoxt.imp.runtime.services.StrategoObserver.feedbackToMarkers(StrategoObserver.java:558)
    at org.strategoxt.imp.runtime.services.StrategoObserver.updateMarkers(StrategoObserver.java:499)
    at org.strategoxt.imp.runtime.services.StrategoObserver.presentToUser(StrategoObserver.java:481)
    at org.strategoxt.imp.runtime.services.StrategoObserver.update(StrategoObserver.java:422)
    at org.strategoxt.imp.runtime.services.StrategoObserverBackgroundUpdateJob.analyzeFile(StrategoObserverBackgroundUpdateJob.java:118)
    at org.strategoxt.imp.runtime.services.StrategoObserverBackgroundUpdateJob.analyze(StrategoObserverBackgroundUpdateJob.java:64)
    at org.strategoxt.imp.runtime.services.StrategoAnalysisQueue$UpdateJob.run(StrategoAnalysisQueue.java:82)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

!ENTRY org.strategoxt.imp.runtime 4 0 2014-08-05 11:58:35.162
!MESSAGE Error running scheduled analysis
java.lang.OutOfMemoryError: GC overhead limit exceeded

!ENTRY org.eclipse.imp.runtime 4 0 2014-08-05 11:59:15.282
!MESSAGE Universal Editor Error
java.lang.OutOfMemoryError: GC overhead limit exceeded

!ENTRY org.strategoxt.imp.runtime 4 0 2014-08-05 11:59:36.388
!MESSAGE Error running scheduled analysis
java.lang.OutOfMemoryError: GC overhead limit exceeded

It might be that the Constructor Function/4 not declared error is not related to the crash, as that error is to be expected when using ast syntax without defining the actual signatures elsewhere.

Submitted by D. Pelsmaeker on 5 August 2014 at 13:38

Log in to post comments