[Modelinterpreter] IncQuery: GC overhead limit exceeded

Ujhelyi Zoltán ujhelyiz at incquerylabs.com
Thu Sep 24 12:08:26 CEST 2015


Szia!

Ez azt jelenti, hogy az IncQuery betöltötte az alkalmazás heap méretét. Lehetséges megoldások:

 * Heap méret növelése (ha nem érte el a maximális mennyiséget)
 * Meggyőződni róla, hogy a minták jók (nem fogyasztanak egyesével túl sok memóriát); erre használható a QueryPerformanceTester base class az incquery repoban: http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/tree/tests/org.eclipse.incquery.testing.core/src/org/eclipse/incquery/testing/core/QueryPerformanceTest.xtend
 * Odafigyelni rá, hogy nem nyitottunk véletlenül több IncQueryEngine-t, ami sokszorozza a memóriafogyasztást.

Üdv,
Zoli
-- Zoltán Ujhelyi

Technology Expert
IncQueryLabs Ltd.

> On 24 Sep 2015, at 11:30, Boldizsár Németh <nboldi at caesar.elte.hu> wrote:
> 
> Szia!
> 
> Mostanság az IncQuery elkezdett a következő hibával meghalni. Nem determinisztikus a gond, több modellem is van egy workspace-ben, azóta produkálja ezt a viselkedést.
> 
> !ENTRY org.eclipse.core.jobs 4 2 2015-09-24 11:23:51.300
> !MESSAGE An internal error occurred during: "Building workspace".
> !STACK 0
> java.lang.OutOfMemoryError: GC overhead limit exceeded
>    at java.util.HashMap.resize(HashMap.java:703)
>    at java.util.HashMap.putVal(HashMap.java:662)
>    at java.util.HashMap.put(HashMap.java:611)
>    at org.eclipse.incquery.runtime.rete.tuple.TupleMemory.add(TupleMemory.java:54)
>    at org.eclipse.incquery.runtime.rete.tuple.TupleMemory.add(TupleMemory.java:1)
>    at org.eclipse.incquery.runtime.rete.tuple.MaskedTupleMemory.add(MaskedTupleMemory.java:79)
>    at org.eclipse.incquery.runtime.rete.index.IndexerWithMemory.update(IndexerWithMemory.java:50)
>    at org.eclipse.incquery.runtime.rete.network.ReteContainer.messageConsumptionSingleThreaded(ReteContainer.java:461)
>    at org.eclipse.incquery.runtime.rete.network.Network.waitForReteTermination(Network.java:347)
>    at org.eclipse.incquery.runtime.rete.boundary.ExternalInputEnumeratorNode.update(ExternalInputEnumeratorNode.java:99)
>    at org.eclipse.incquery.runtime.emf.EMFQueryRuntimeContext$EClassTransitiveInstancesAdapter.instanceInserted(EMFQueryRuntimeContext.java:450)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.notifyInstanceListeners(NavigationHelperContentAdapter.java:745)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.insertIntoInstanceSet(NavigationHelperContentAdapter.java:545)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperVisitor.visitElement(NavigationHelperVisitor.java:202)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:185)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseFeatureInternal(EMFModelComprehension.java:261)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:197)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseFeatureInternal(EMFModelComprehension.java:261)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:197)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResource(EMFModelComprehension.java:168)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResourceIfUnfiltered(EMFModelComprehension.java:158)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResourceSet(EMFModelComprehension.java:146)
>    at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseModel(EMFModelComprehension.java:137)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.traverse(NavigationHelperImpl.java:1102)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.access$0(NavigationHelperImpl.java:1099)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl$5.call(NavigationHelperImpl.java:1079)
>    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.coalesceTraversals(NavigationHelperImpl.java:1028)
>    at org.eclipse.incquery.runtime.emf.EMFBaseIndexWrapper.coalesceTraversals(EMFBaseIndexWrapper.java:60)
>    at org.eclipse.incquery.runtime.internal.apiimpl.IncQueryEngineImpl.prepareGroup(IncQueryEngineImpl.java:585)
> 
> Üdv,
> Boldi



More information about the Modelinterpreter mailing list