Deadlock between ResourceChangeNotifierImpl.subscribeResourceChangeListener and
ResourceChangeScannerImpl.subscribeNotifier
---------------------------------------------------------------------------------------------------------------------------
Key: JBRULES-2463
URL:
https://jira.jboss.org/jira/browse/JBRULES-2463
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 5.0.1.FINAL
Reporter: Andreas Kohn
Assignee: Mark Proctor
This deadlock was found by our continouos integration system which is building drools
using mvn.
Found one Java-level deadlock:
=============================
"Thread-42":
waiting to lock monitor 0x00002aaaf8f2e8d0 (object 0x00002aaab4645830, a
java.util.HashMap),
which is held by "main"
"main":
waiting to lock monitor 0x00002aaaf4f3a028 (object 0x00002aaab46459b0, a
java.util.HashMap),
which is held by "Thread-42"
Java stack information for the threads listed above:
===================================================
"Thread-42":
at
org.drools.io.impl.ResourceChangeNotifierImpl.subscribeResourceChangeListener(ResourceChangeNotifierImpl.java:64)
- waiting to lock <0x00002aaab4645830> (a java.util.HashMap)
at
org.drools.io.impl.ResourceChangeNotifierImpl.subscribeChildResource(ResourceChangeNotifierImpl.java:103)
at org.drools.io.impl.ResourceChangeScannerImpl.scan(ResourceChangeScannerImpl.java:128)
- locked <0x00002aaab46459b0> (a java.util.HashMap)
at
org.drools.io.impl.ResourceChangeScannerImpl$ProcessChangeSet.run(ResourceChangeScannerImpl.java:276)
- locked <0x00002aaab46459b0> (a java.util.HashMap)
- locked <0x00002aaade2c97d8> (a
org.drools.io.impl.ResourceChangeScannerImpl$ProcessChangeSet)
at java.lang.Thread.run(Thread.java:619)
"main":
at
org.drools.io.impl.ResourceChangeScannerImpl.subscribeNotifier(ResourceChangeScannerImpl.java:64)
- waiting to lock <0x00002aaab46459b0> (a java.util.HashMap)
at
org.drools.io.impl.ResourceChangeNotifierImpl.subscribeResourceChangeListener(ResourceChangeNotifierImpl.java:70)
- locked <0x00002aaab4645830> (a java.util.HashMap)
at
org.drools.agent.impl.KnowledgeAgentImpl.processChangeSet(KnowledgeAgentImpl.java:150)
- locked <0x00002aaade2c9c18> (a java.util.HashMap)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:117)
- locked <0x00002aaade2c9c18> (a java.util.HashMap)
at org.drools.agent.impl.KnowledgeAgentImpl.applyChangeSet(KnowledgeAgentImpl.java:109)
at org.drools.agent.KnowledgeAgentTest.testModifyDirectory(KnowledgeAgentTest.java:776)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Found 1 deadlock.
--
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