[jboss-jira] [JBoss JIRA] Commented: (JBRULES-2340) FireUntilHalt has race condition when using different entry points

Mark Proctor (JIRA) jira-events at lists.jboss.org
Sun Nov 15 19:02:30 EST 2009


    [ https://jira.jboss.org/jira/browse/JBRULES-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12494743#action_12494743 ] 

Mark Proctor commented on JBRULES-2340:
---------------------------------------

The problem happens when we have a PropagationQueueingNode. Which executes:
    public void queueWorkingMemoryAction(final WorkingMemoryAction action) {
        synchronized ( this.actionQueue ) {
            try {
                startOperation();
                this.actionQueue.add( action );
                this.agenda.notifyHalt();
            } finally {
                endOperation();
            }
        }
    }

This also notifies the agenda.halt which causes it to interrupt and continue executing fireUntilHalt. But there it locks on workingMemory.executeQueuedActions() because we are in the middle of an insert action. The insert action creates an activation which notifies agenda.halt, however we aren't waiting on that yet, because we are still stuck on workingMemory.executeQueuedActions().  The insert finishes and the workingMemory.executeQueuedActions() returns and then it goes to wait on agenda.halt again - missing the necessary interruption to make it evaluate the agenda again.

> FireUntilHalt has race condition when using different entry points
> ------------------------------------------------------------------
>
>                 Key: JBRULES-2340
>                 URL: https://jira.jboss.org/jira/browse/JBRULES-2340
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core, drools-core  (expert)
>    Affects Versions: 5.1.0.M1
>            Reporter: Mark Proctor
>            Assignee: Mark Proctor
>             Fix For: 5.1.0.M2
>
>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list