Running the eXist-db test suite, on occasion now that EvalTest is executed in parallel it can reveal a Collection deadlock in eXist-db 4.0.0.
The jstack is:
2018-02-25 21:53:09
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.162-b12 mixed mode):
"Attach Listener" #29 daemon prio=9 os_prio=31 tid=0x00007f8920065800 nid=0x1007 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"JUnit-ForkJoinPool-1-worker-7" #28 daemon prio=5 os_prio=31 tid=0x00007f891b4e9800 nid=0x6603 in Object.wait() [0x0000700008c1c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.exist.storage.lock.ReentrantReadWriteLock.acquire(ReentrantReadWriteLock.java:159)
- locked <0x00000007a0cbb840> (a org.exist.storage.lock.ReentrantReadWriteLock)
at org.exist.storage.NativeBroker.saveCollection(NativeBroker.java:1724)
at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$0(LocalCollectionManagementService.java:79)
at org.exist.xmldb.LocalCollectionManagementService$$Lambda$141/584924542.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:196)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:73)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:63)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:52)
at org.exist.xquery.functions.util.EvalTest.createCollection(EvalTest.java:259)
at org.exist.xquery.functions.util.EvalTest.evalInContextWithPreDeclaredNamespaceAcrossLocalFunctionBoundary(EvalTest.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.experimental.theories.Theories$TheoryAnchor$2.evaluate(Theories.java:274)
at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:232)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithCompleteAssignment(Theories.java:218)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:204)
at com.googlecode.junittoolbox.ParallelRunner$ParallelTheoryAnchor.runWithAssignment(ParallelRunner.java:71)
at org.junit.experimental.theories.Theories$TheoryAnchor.evaluate(Theories.java:187)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-6" #27 daemon prio=5 os_prio=31 tid=0x00007f891daa3000 nid=0x9c03 in Object.wait() [0x0000700008b19000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.exist.storage.lock.ReentrantReadWriteLock.acquire(ReentrantReadWriteLock.java:159)
- locked <0x00000007a0f42f90> (a org.exist.storage.lock.ReentrantReadWriteLock)
at org.exist.collections.MutableCollection.serialize(MutableCollection.java:887)
at org.exist.storage.NativeBroker.saveCollection(NativeBroker.java:1731)
at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$0(LocalCollectionManagementService.java:79)
at org.exist.xmldb.LocalCollectionManagementService$$Lambda$141/584924542.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:196)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:73)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:63)
at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:52)
at org.exist.xquery.functions.util.EvalTest.createCollection(EvalTest.java:259)
at org.exist.xquery.functions.util.EvalTest.evalInContextWithPreDeclaredNamespaceAcrossModuleBoundary(EvalTest.java:183)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.experimental.theories.Theories$TheoryAnchor$2.evaluate(Theories.java:274)
at org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:232)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithCompleteAssignment(Theories.java:218)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:204)
at com.googlecode.junittoolbox.ParallelRunner$ParallelTheoryAnchor.runWithAssignment(ParallelRunner.java:71)
at org.junit.experimental.theories.Theories$TheoryAnchor.evaluate(Theories.java:187)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-5" #26 daemon prio=5 os_prio=31 tid=0x00007f891eac9000 nid=0x6303 waiting on condition [0x0000700008a17000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007a0a37fc0> (a java.util.concurrent.ForkJoinPool)
at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-4" #25 daemon prio=5 os_prio=31 tid=0x00007f891b628800 nid=0x6103 waiting on condition [0x0000700008914000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007a0a37fc0> (a java.util.concurrent.ForkJoinPool)
at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-3" #24 daemon prio=5 os_prio=31 tid=0x00007f891c4fb000 nid=0x9d03 in Object.wait() [0x000070000880f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.exist.storage.lock.ReentrantReadWriteLock.acquire(ReentrantReadWriteLock.java:159)
- locked <0x00000007a0f42f90> (a org.exist.storage.lock.ReentrantReadWriteLock)
at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:983)
at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:820)
at org.exist.xmldb.AbstractLocal.lambda$with$6(AbstractLocal.java:167)
at org.exist.xmldb.AbstractLocal$$Lambda$119/1551139176.apply(Unknown Source)
at org.exist.xmldb.AbstractLocal.lambda$null$2(AbstractLocal.java:81)
at org.exist.xmldb.AbstractLocal$$Lambda$118/305651902.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:196)
at org.exist.xmldb.AbstractLocal.lambda$read$3(AbstractLocal.java:81)
at org.exist.xmldb.AbstractLocal$$Lambda$116/1420599919.apply(Unknown Source)
at org.exist.xmldb.LocalCollection.lambda$read$19(LocalCollection.java:697)
at org.exist.xmldb.LocalCollection$$Lambda$114/1501513951.apply(Unknown Source)
at org.exist.xmldb.LocalCollection.<init>(LocalCollection.java:123)
at org.exist.xmldb.LocalCollection.getChildCollection(LocalCollection.java:234)
at org.exist.xquery.functions.util.EvalTest.createCollection(EvalTest.java:256)
at org.exist.xquery.functions.util.EvalTest.evalInContextWithPreDeclaredNamespace(EvalTest.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.experimental.theories.Theories$TheoryAnchor$2.evaluate(Theories.java:274)
at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:232)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithCompleteAssignment(Theories.java:218)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:204)
at com.googlecode.junittoolbox.ParallelRunner$ParallelTheoryAnchor.runWithAssignment(ParallelRunner.java:71)
at org.junit.experimental.theories.Theories$TheoryAnchor.evaluate(Theories.java:187)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-2" #23 daemon prio=5 os_prio=31 tid=0x00007f891b4e6800 nid=0x5e03 in Object.wait() [0x000070000870c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.exist.storage.lock.ReentrantReadWriteLock.acquire(ReentrantReadWriteLock.java:159)
- locked <0x00000007a0cbb840> (a org.exist.storage.lock.ReentrantReadWriteLock)
at org.exist.storage.index.CollectionStore.getFreeResourceId(CollectionStore.java:99)
at org.exist.storage.NativeBroker.getNextResourceId(NativeBroker.java:2836)
at org.exist.collections.MutableCollection.addDocument(MutableCollection.java:292)
at org.exist.collections.MutableCollection.addBinaryResource(MutableCollection.java:1694)
at org.exist.collections.MutableCollection.addBinaryResource(MutableCollection.java:1646)
at org.exist.xmldb.LocalCollection.lambda$storeBinaryResource$12(LocalCollection.java:532)
at org.exist.xmldb.LocalCollection$$Lambda$121/311788384.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbCollectionFunction.apply(LocalXmldbCollectionFunction.java:48)
at org.exist.xmldb.LocalCollection.lambda$null$22(LocalCollection.java:729)
at org.exist.xmldb.LocalCollection$$Lambda$123/1866403758.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbCollectionFunction.apply(LocalXmldbCollectionFunction.java:48)
at org.exist.xmldb.AbstractLocal.lambda$with$6(AbstractLocal.java:172)
at org.exist.xmldb.AbstractLocal$$Lambda$119/1551139176.apply(Unknown Source)
at org.exist.xmldb.AbstractLocal.lambda$null$4(AbstractLocal.java:118)
at org.exist.xmldb.AbstractLocal$$Lambda$124/564555077.applyXmldb(Unknown Source)
at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:196)
at org.exist.xmldb.AbstractLocal.lambda$modify$5(AbstractLocal.java:118)
at org.exist.xmldb.AbstractLocal$$Lambda$122/208539442.apply(Unknown Source)
at org.exist.xmldb.LocalCollection.lambda$modify$23(LocalCollection.java:727)
at org.exist.xmldb.LocalCollection$$Lambda$120/975905570.apply(Unknown Source)
at org.exist.xmldb.LocalCollection.storeBinaryResource(LocalCollection.java:527)
at org.exist.xmldb.LocalCollection.storeResource(LocalCollection.java:510)
at org.exist.xmldb.LocalCollection.storeResource(LocalCollection.java:491)
at org.exist.xquery.functions.util.EvalTest.writeModule(EvalTest.java:271)
at org.exist.xquery.functions.util.EvalTest.evalWithMissingVariableReferenceShouldReportTheSameErrorEachTime(EvalTest.java:221)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.experimental.theories.Theories$TheoryAnchor$2.evaluate(Theories.java:274)
at org.junit.experimental.theories.Theories$TheoryAnchor$1$1.evaluate(Theories.java:232)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithCompleteAssignment(Theories.java:218)
at org.junit.experimental.theories.Theories$TheoryAnchor.runWithAssignment(Theories.java:204)
at com.googlecode.junittoolbox.ParallelRunner$ParallelTheoryAnchor.runWithAssignment(ParallelRunner.java:71)
at org.junit.experimental.theories.Theories$TheoryAnchor.evaluate(Theories.java:187)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"JUnit-ForkJoinPool-1-worker-1" #22 daemon prio=5 os_prio=31 tid=0x00007f891b5b8000 nid=0x9f07 waiting on condition [0x000070000860b000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007a0a37fc0> (a java.util.concurrent.ForkJoinPool)
at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
"Checkpointer" #20 daemon prio=5 os_prio=31 tid=0x00007f891d899000 nid=0x5d03 in Object.wait() [0x0000700008508000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0d704e8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:502)
at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
- locked <0x00000007a0d704e8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:748)
"Cleaner-1" #19 daemon prio=5 os_prio=31 tid=0x00007f891ccbf000 nid=0xa103 in Object.wait() [0x0000700008405000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0cda118> (a java.lang.Object)
at java.lang.Object.wait(Object.java:502)
at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
- locked <0x00000007a0cda118> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:748)
"INCompressor" #18 daemon prio=5 os_prio=31 tid=0x00007f891cd46800 nid=0x5a03 in Object.wait() [0x0000700008302000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:176)
- locked <0x00000007a0d7cae8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:748)
"exist-fileSyncThread" #17 prio=5 os_prio=31 tid=0x00007f891cc96000 nid=0xa303 in Object.wait() [0x00007000081ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0114d90> (a org.exist.storage.journal.FileSyncThread)
at java.lang.Object.wait(Object.java:502)
at org.exist.storage.journal.FileSyncThread.run(FileSyncThread.java:114)
- locked <0x00000007a0114d90> (a org.exist.storage.journal.FileSyncThread)
"DefaultQuartzScheduler_QuartzSchedulerThread" #16 prio=5 os_prio=31 tid=0x00007f891b4eb000 nid=0xa403 in Object.wait() [0x00007000080fc000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:328)
- locked <0x00000007a0124f38> (a java.lang.Object)
"DefaultQuartzScheduler_Worker-4" #15 prio=5 os_prio=31 tid=0x00007f891bb5b000 nid=0xa603 in Object.wait() [0x0000700007ff9000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
- locked <0x00000007a01373c0> (a java.lang.Object)
"DefaultQuartzScheduler_Worker-3" #14 prio=5 os_prio=31 tid=0x00007f891b44e000 nid=0xa803 in Object.wait() [0x0000700007ef6000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
- locked <0x00000007a013f368> (a java.lang.Object)
"DefaultQuartzScheduler_Worker-2" #13 prio=5 os_prio=31 tid=0x00007f891b44a800 nid=0x5803 in Object.wait() [0x0000700007df3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
- locked <0x00000007a01150a8> (a java.lang.Object)
"DefaultQuartzScheduler_Worker-1" #12 prio=5 os_prio=31 tid=0x00007f891cd02800 nid=0x5603 in Object.wait() [0x0000700007cf0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)
- locked <0x00000007a0151648> (a java.lang.Object)
"Service Thread" #9 daemon prio=9 os_prio=31 tid=0x00007f891b01a800 nid=0x4003 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread3" #8 daemon prio=9 os_prio=31 tid=0x00007f891c06c000 nid=0x3d03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007f891c06b800 nid=0x3c03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007f891c06a800 nid=0x4303 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007f891c01d800 nid=0x4503 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007f891b01b800 nid=0x3907 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007f891b003800 nid=0x3203 in Object.wait() [0x00007000074d8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0115990> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x00000007a0115990> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:212)
"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007f891b82f800 nid=0x3103 in Object.wait() [0x00007000073d5000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0115b48> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0x00000007a0115b48> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
"main" #1 prio=5 os_prio=31 tid=0x00007f891c008800 nid=0x2603 in Object.wait() [0x00007000069b7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007a0f76450> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction)
at java.util.concurrent.ForkJoinTask.externalAwaitDone(ForkJoinTask.java:334)
- locked <0x00000007a0f76450> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction)
at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:391)
at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
at com.googlecode.junittoolbox.ParallelScheduler.finished(ParallelScheduler.java:83)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:295)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1182)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1033)
"VM Thread" os_prio=31 tid=0x00007f891c016000 nid=0x4e03 runnable
"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007f891d803800 nid=0x1d07 runnable
"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007f891d804000 nid=0x1e03 runnable
"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007f891d804800 nid=0x2b03 runnable
"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007f891c007000 nid=0x2c03 runnable
"GC task thread#4 (ParallelGC)" os_prio=31 tid=0x00007f891c007800 nid=0x5203 runnable
"GC task thread#5 (ParallelGC)" os_prio=31 tid=0x00007f891c021000 nid=0x2d03 runnable
"GC task thread#6 (ParallelGC)" os_prio=31 tid=0x00007f891c021800 nid=0x5003 runnable
"GC task thread#7 (ParallelGC)" os_prio=31 tid=0x00007f891c022800 nid=0x3003 runnable
"VM Periodic Task Thread" os_prio=31 tid=0x00007f891b01c000 nid=0x3f03 waiting on condition
JNI global references: 575
Running the eXist-db test suite, on occasion now that
EvalTest
is executed in parallel it can reveal a Collection deadlock in eXist-db 4.0.0.The jstack is: