[
https://issues.jboss.org/browse/DROOLS-1059?page=com.atlassian.jira.plugi...
]
Mario Fusco commented on DROOLS-1059:
-------------------------------------
I created a more complex version of the provided reproducer in this pull request
https://github.com/droolsjbpm/drools/pull/714 but with no luck. I'm not able to
reproduce this issue neither I could understand where the problem could be by statically
reading drools code.
As I wrote in the comment to that PR I asked to one of the guy of our QA team to give
another look at this. However at the moment I really don't see how that exception
could be thrown. The method where the exception is thrown is trying to navigate the rete
network and find a specific node related with the query. In other words that part of the
code is not related in any way with a specific KieSession but only with the KieBase from
where all the KieSessions have been created.
Can you please confirm that you're not using incremental compilation (KieScanner)?
That's the only feature that could change the KieBase when the KieSession are in use,
so if you're using it we may have a concurrency problem there.
Drools can't find rules under stress
------------------------------------
Key: DROOLS-1059
URL:
https://issues.jboss.org/browse/DROOLS-1059
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.3.0.Final
Reporter: Massinissa BOUZIAD
Assignee: Mario Fusco
Priority: Blocker
Attachments: DroolsBugReproducerTest.java, reproducerRule.drl
In my knowledge base, I have many rules.
All of them are working very well in production with drools 6.0.1-FINAL even in stress
condition hight trafic (arount 40 hits seconds)
This bug append when we made an upgrade with drools 6.3.0-FINAL which is compatible with
jdk8 mandatory in my case.
So now when I put my rules under stress test (benchmarking) I got this random error.
Drools is unable to find a query (not always the same one).
I got this error for 0,6% of my requests.
*+Following the stack trace : +*
Unable to find query 'checkAndBindBasket'
at org.drools.core.phreak.SegmentUtilities.getQueryLiaNode(SegmentUtilities.java:518)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.phreak.SegmentUtilities.getQuerySegmentMemory(SegmentUtilities.java:208)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.SegmentMemory$QueryMemoryPrototype.populateMemory(SegmentMemory.java:505)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.SegmentMemory$Prototype.newSegmentMemory(SegmentMemory.java:400)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.impl.KnowledgeBaseImpl.createSegmentFromPrototype(KnowledgeBaseImpl.java:1424)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.phreak.SegmentUtilities.restoreSegmentFromPrototype(SegmentUtilities.java:186)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.phreak.SegmentUtilities.createSegmentMemory(SegmentUtilities.java:83)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:167)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:60)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:60)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:494)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:384)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:298)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:96)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:69)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:1993)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1289)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1294)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1281)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
at
org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1260)
~[darty-pricing-ws-2.0.2.jar:2.0.2]
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)