| Summary: | Exception when using CEP and left-right unlinking | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise BRMS Platform 5 | Reporter: | Tomas Schlosser <tschloss> | ||||
| Component: | BRE (Expert, Fusion) | Assignee: | Nobody <nobody> | ||||
| Status: | MODIFIED --- | QA Contact: | Lukáš Petrovický <lpetrovi> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | BRMS 5.3.0.GA | CC: | lpetrovi, mproctor | ||||
| Target Milestone: | --- | ||||||
| Target Release: | future | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | Type: | Bug | |||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
The root of the problem is the use of entry points with unlinking. When using entry points, the engine uses PropagationQueueingNodes and that node does not support linking/unlinking when there are pending propagations. Looking for a solution. Discussed the subject with Mark. Left/Right unlinking is a feature developed by a community member and requires some improvements. At this point, we recommend against the use of this option, until later this year when we will be able to address its shortcomings. Please verify the issue on 5.3 ER4. I removed jboss-brms-5.3.0 flag to mark it not targeted for 5.3.0 release, but the issue still stands. The feature has been almost completely rewritten in a branch and bears no similarity to the current implementation. We'll merge that into .org 5.5 at some point. I'm marking this as "future" to take it out of the BRMS 5.3 work schedule. Feel free to delete all together, or to leave it as a reminder to test against the unlinking from .org 5.5 once it makes it's way to production. |
Created attachment 529754 [details] Simple reproducer Description of problem: When using temporal operator and knowledge base with left-right unlinking enabled, I get an exception. Version-Release number of selected component (if applicable): BRMS-5.2.0.GA How reproducible: Every time. Steps to Reproduce: 1. Run included test case Actual results: Exception in thread "main" org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.reteoo.PropagationQueuingNode$PropagateAction@6545d2 at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1005) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:344) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:293) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:117) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:49) at org.jboss.qa.brms.fusionunlinking.SimpleFusionTest.testAfterOperator(SimpleFusionTest.java:38) at org.jboss.qa.brms.fusionunlinking.SimpleFusionTest.main(SimpleFusionTest.java:23) Caused by: org.drools.RuntimeDroolsException: Error updating sink. Not safe to update sink as the PropagatingQueueingNode memory is not empty at node: [PropagationQueuingNode(8)] at org.drools.reteoo.PropagationQueuingNode.updateSink(PropagationQueuingNode.java:103) at org.drools.reteoo.BetaNode.leftUnlinked(BetaNode.java:628) at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:67) at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:197) at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:72) at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:161) at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59) at org.drools.reteoo.PropagationQueuingNode$AssertAction.execute(PropagationQueuingNode.java:354) at org.drools.reteoo.PropagationQueuingNode.propagateActions(PropagationQueuingNode.java:238) at org.drools.reteoo.PropagationQueuingNode$PropagateAction.execute(PropagationQueuingNode.java:502) at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:1003) ... 6 more Expected results: Additional info: