Bug 748345 - Exception when using CEP and left-right unlinking
Summary: Exception when using CEP and left-right unlinking
Keywords:
Status: MODIFIED
Alias: None
Product: JBoss Enterprise BRMS Platform 5
Classification: JBoss
Component: BRE (Expert, Fusion)
Version: BRMS 5.3.0.GA
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: future
Assignee: Nobody
QA Contact: Lukáš Petrovický
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-24 08:26 UTC by Tomas Schlosser
Modified: 2022-08-12 04:38 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug


Attachments (Terms of Use)
Simple reproducer (1.87 KB, application/x-zip-compressed)
2011-10-24 08:26 UTC, Tomas Schlosser
no flags Details

Description Tomas Schlosser 2011-10-24 08:26:01 UTC
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:

Comment 2 Edson Tirelli 2012-02-01 21:16:56 UTC
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.

Comment 3 Edson Tirelli 2012-02-07 00:32:04 UTC
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.

Comment 4 Ryan Zhang 2012-02-15 09:12:12 UTC
Please verify the issue on 5.3 ER4.

Comment 5 Tomas Schlosser 2012-02-22 11:21:25 UTC
I removed jboss-brms-5.3.0 flag to mark it not targeted for 5.3.0 release, but the issue still stands.

Comment 6 Mark Proctor 2012-04-06 00:45:10 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.