[jboss-jira] [JBoss JIRA] (DROOLS-987) Errors in Phreak under heavy and multi threaded load

Jose Cavieres (JIRA) issues at jboss.org
Wed Jan 27 10:38:01 EST 2016


     [ https://issues.jboss.org/browse/DROOLS-987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jose Cavieres reopened DROOLS-987:
----------------------------------


There is nothing bad in that code. That same code is included in both jbpm 6 books and in the JBPM project:
* This listener should be used to automatically fire rules as soon as they get activated. 
 * Especially useful for executing business rule tasks as part of the process.
https://github.com/droolsjbpm/jbpm/blob/6.3.x/jbpm-flow/src/main/java/org/jbpm/process/instance/event/listeners/TriggerRulesEventListener.java
See lines 82-83

Anyway, the problem doesn't disappear if you eliminate the listener and use fireUntilHalt().
In order to verify that, in RulesJUnitTest.java you just have to eliminate(or /* */)  the lines 90-98 and eliminate the "//" in lines 135-136:
//Disparador disp= new Disparador();
//disp.start();
 
Regards

> Errors in Phreak under heavy and multi threaded load 
> -----------------------------------------------------
>
>                 Key: DROOLS-987
>                 URL: https://issues.jboss.org/browse/DROOLS-987
>             Project: Drools
>          Issue Type: Bug
>          Components: core engine
>    Affects Versions: 6.3.0.Final
>         Environment: linux
> Java 7
> kernel 3.16
>            Reporter: Jose Cavieres
>            Assignee: Marco Rietveld
>         Attachments: jbpm-bussinesruletask-concurrent-6-3-NEW.tgz, jbpm-bussinesruletask-concurrent-6-3.tgz
>
>
> Several threads are started, each one starts 1 jbpm process containing rule(s) task(s).
> If the threads are few, everything works fine. Under heavy load nullPointerExceptions are thown most of the time, less frequently fireAllRules never ends and CPU remains at 100%.
> Aparently the setFocus method used by rule tasks is related to the problem.
> The most comon error is:
> Caused by: java.lang.NullPointerException
>         at org.drools.core.common.LeftTupleSetsImpl.removeInsert(LeftTupleSetsImpl.java:141)
>         at org.drools.core.common.LeftTupleSetsImpl.addDelete(LeftTupleSetsImpl.java:80)
>         at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteSegmentMemory(LeftInputAdapterNode.java:295)
>         at org.drools.core.reteoo.LeftInputAdapterNode.doDeleteObject(LeftInputAdapterNode.java:266)
>         at org.drools.core.reteoo.LeftInputAdapterNode.retractLeftTuple(LeftInputAdapterNode.java:361)
>         at org.drools.core.reteoo.ObjectTypeNode.doRetractObject(ObjectTypeNode.java:334)
>         at org.drools.core.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:317)
>         at org.drools.core.reteoo.EntryPointNode.propagateRetract(EntryPointNode.java:358)
>         at org.drools.core.phreak.PropagationEntry$Delete.execute(PropagationEntry.java:172)
>         at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:96)
>         at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:69)
>         at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:1993)



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list