<div dir="ltr">If you run each of these sessions alone does you get the same problem? or this only happens when you try to run multiple sessions in parallel??</div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Tue, Jul 23, 2013 at 1:33 PM, Bojan Janisch <span dir="ltr">&lt;<a href="mailto:bojan.janisch@scai.fraunhofer.de" target="_blank">bojan.janisch@scai.fraunhofer.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hey drools users,<br>
<br>
I&#39;m running drools multiple times in parallel with ECJ (genetic algorithm framework). Also I&#39;m running ECJ multiple times in parallel (evaluation purpose).<br>
But each time I want to run ECJ, after an unspecific time, one thread is running infinite long while ECJ waits for it to finish. Additionally to this my<br>
working memory is steadily growing while hanging in this deadlock-like state, though this might not be due to drools. This goes on until I get an gc out of<br>
memory exception.<br>
<br>
I&#39;ve created a threaddump which always looks so:<br>
<br>
 java.lang.Thread.State: RUNNABLE<br>
        at java.lang.Object.notifyAll(Native Method)<br>
        at org.drools.common.DefaultAgenda.notifyHalt(DefaultAgenda.java:1478)<br>
        - locked &lt;0x00002af5f3b0fe88&gt; (a java.util.concurrent.atomic.AtomicBoolean)<br>
        at org.drools.common.DefaultAgenda.addActivation(DefaultAgenda.java:466)<br>
        at org.drools.common.DefaultAgenda.addActivation(DefaultAgenda.java:326)<br>
        at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:259)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)<br>
        at org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107)<br>
        at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)<br>
        at org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107)<br>
        at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)<br>
        at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)<br>
        at org.drools.reteoo.JoinNode.propagateFromRight(JoinNode.java:159)<br>
        at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148)<br>
        at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)<br>
        at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)<br>
        at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)<br>
        at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)<br>
        at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)<br>
        at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)<br>
        at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)<br>
        at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)<br>
        at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)<br>
        at rulevolution.RulEvolution.runDrools(RulEvolution.java:343)<br>
        at rulevolution.RulEvolution.evaluate(RulEvolution.java:185)<br>
        at ec.simple.SimpleEvaluator.evalPopChunk(SimpleEvaluator.java:259)<br>
        at ec.simple.SimpleEvaluator$SimpleEvaluatorThreadCG.run(SimpleEvaluator.java:341)<br>
        at ec.util.ThreadPool$PoolThread.run(ThreadPool.java:57)<br>
<br>
   Locked ownable synchronizers:<br>
        - &lt;0x00002af5f3ae95d0&gt; (a java.util.concurrent.locks.ReentrantLock$NonfairSync)<br>
<br>
To my Programm:<br>
<br>
Rules are generated in parallel and for each rule, a new KnowledgeBase, KnowledgeBuilder and StatefulKnowledgeSession is created.<br>
Objects are inserted into the session and the rule is fired. The session will be disposed after no facts matches my rule or 1000<br>
conclusions are fired.<br>
<br>
I&#39;ve searched the net for a similar problem, but with no success. Does someone know why Drools get into such a thread state and<br>
how to get out of it?<br>
<br>
I appreciate any help.<br>
<br>
Bojan<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"> - MyJourney @ <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.com</a><div> - Co-Founder @ <a href="http://www.jugargentina.org" target="_blank">http://www.jugargentina.org</a><br>

 - Co-Founder @ <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br> <br> - Salatino &quot;Salaboy&quot; Mauricio -</div></div>
</div>