[
https://issues.jboss.org/browse/DROOLS-1472?page=com.atlassian.jira.plugi...
]
Michael Neifeld commented on DROOLS-1472:
-----------------------------------------
I just walk through the stack trace and have found:
{code:java}
// Some comments here
private static TupleSets<LeftTuple> getTargetStagedLeftTuples(NetworkNode node,
InternalWorkingMemory wm, SegmentMemory smem) {
if (node == smem.getTipNode()) {
// we are about to process the segment tip, allow it to merge
insert/update/delete clashes
if ( smem.isEmpty() ) {
SegmentUtilities.createChildSegments(wm, smem, ((LeftTupleSource)
node).getSinkPropagator() );
}
return smem.getFirst().getStagedLeftTuples().takeAll();
} else {
return null;
}
}
{code}
in class org.drools.core.phreak.RuleNetworkEvaluator.
the method was invoked on line 298
{code:java}
stagedLeftTuples = getTargetStagedLeftTuples(node, wm, smem);
LeftTupleSinkNode sink = ((LeftTupleSource)
node).getSinkPropagator().getFirstLeftTupleSink();
trgTuples = evalNode( pmem, node, bit, nodeMem, smems, smemIndex, wm, stack,
processRian, executor, srcTuples, smem, stagedLeftTuples, sink );
if ( trgTuples == null ) {
break; // Queries exists and has been placed StackEntry, and there are no
current trgTuples to process
}
{code}
and if the method will return null we will fail with NPE.
NPE in stateful session
------------------------
Key: DROOLS-1472
URL:
https://issues.jboss.org/browse/DROOLS-1472
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.5.0.Final
Environment: RedHat 6.2, Java 8.102
Reporter: Michael Neifeld
Assignee: Mario Fusco
Priority: Critical
Found NPE in a log that probably leads to session destroying.
CEP works in multithreaded environment and there are almost always 16 drools-workers
thread.
2017-03-05 16:30:58 com.mot.ssol.cep.workflow.CEPSession [ERROR] Session execution error
occurred
java.lang.NullPointerException: null
at
org.drools.core.phreak.RuleNetworkEvaluator.deleteChildLeftTuple(RuleNetworkEvaluator.java:729)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.RuleNetworkEvaluator.unlinkAndDeleteChildLeftTuple(RuleNetworkEvaluator.java:721)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.PhreakNotNode.doRightUpdates(PhreakNotNode.java:343)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.PhreakNotNode.doNode(PhreakNotNode.java:74)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:524)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:505)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:341)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:301)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:136)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.AddRemoveRule.forceFlushLeftTuple(AddRemoveRule.java:686)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.AddRemoveRule.flushLeftTupleIfNecessary(AddRemoveRule.java:629)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.LeftInputAdapterNode.doInsertSegmentMemory(LeftInputAdapterNode.java:225)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.LeftInputAdapterNode.doInsertObject(LeftInputAdapterNode.java:210)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:169)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:134)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:304)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:134)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:86)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:81)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2105)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1296)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at org.drools.core.common.DefaultAgenda.fireUntilHalt(DefaultAgenda.java:1232)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:1398)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:1377)
~[drools-core-6.5.0.Final.jar:6.5.0.Final]
at com.mot.ssol.cep.workflow.CEPSession.run(CEPSession.java:121)
~[mimonitor-cepm-3.0.jar:3.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[na:1.8.0_102]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_102]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102]
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)