]
Edson Tirelli resolved JBRULES-2135.
------------------------------------
Resolution: Done
Thanks for reporting and suggesting fixes. This was fixed as part of the ticket
JBRULES-2375.
Deadlock occurs in Multithreaded Environment NamedEntryPoint lock and
AbstractWorkingMemory actionQueue sync block.
-------------------------------------------------------------------------------------------------------------------
Key: JBRULES-2135
URL:
https://jira.jboss.org/browse/JBRULES-2135
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (fusion)
Affects Versions: 5.0.1.FINAL
Environment: java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu7)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing)
Reporter: Jonathon Leibundguth
Assignee: Edson Tirelli
Priority: Critical
Fix For: 5.1.0.CR1
While running drools using fireUntilHalt in multithreaded environment, the following
situation results in deadlock:
Thread A (Drools' Thread): AbstractWorkingMemory method executeQueuedActions() locks
actionQueue:
synchronized ( this.actionQueue )
Calls action.execute( this ) for each item in queue, in this case
WorkingMemoryReteExpireAction to expire an event object. The
WorkingMemoryReteExpireAction tries to obtain the lock in NamedEntryPoint during call to
retract().
Thread B (User's Thread): attempts to execute a NamedEntryPoint insert() action
simultaneously with the above. The thread obtains the NamedEntryPoint lock and blocks
waiting for the lock on actionQueue.
Deadlock:
Thread A is blocked waiting for NamedEntryPoint lock, owned by Thread B.
Thread B is blocked waiting for lock on actionQueue, owned by Thread A.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: