Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various bugfixes and improvements #886

Closed
wants to merge 8 commits into from
Closed

Conversation

adamretter
Copy link
Contributor

This is a rebase of the changes from #853

Closes #851
Closes #852
Closes #853

Thanks to @alebastrov for the original work.

@adamretter
Copy link
Contributor Author

Hold fire! Whilst I think this code is correct, it can occasionally cause a deadlock which I think was only unearthed because of a sync issue this code fixes. Therefore the deadlock issue lies elsewhere. I am investigating...

Deadlock looks like:

2016-01-14 15:45:45
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode):

"Attach Listener" #39 daemon prio=9 os_prio=31 tid=0x00007fed9e8ff000 nid=0x8203 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"pool-3-thread-10" #38 prio=5 os_prio=31 tid=0x00007feda1939800 nid=0x8003 waiting for monitor entry [0x0000000126625000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-9" #37 prio=5 os_prio=31 tid=0x00007feda1939000 nid=0x7e03 waiting for monitor entry [0x0000000126522000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-8" #36 prio=5 os_prio=31 tid=0x00007fed9f80c800 nid=0x7c03 waiting for monitor entry [0x000000012641f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-7" #35 prio=5 os_prio=31 tid=0x00007feda0800000 nid=0x7a03 waiting for monitor entry [0x000000012631c000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-6" #34 prio=5 os_prio=31 tid=0x00007feda0967800 nid=0x7803 waiting for monitor entry [0x0000000126219000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-5" #33 prio=5 os_prio=31 tid=0x00007fed9e010000 nid=0x7603 waiting for monitor entry [0x0000000125f1a000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-4" #32 prio=5 os_prio=31 tid=0x00007feda1937800 nid=0x7403 waiting for monitor entry [0x00000001254e1000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-3" #31 prio=5 os_prio=31 tid=0x00007feda1038800 nid=0x3f07 waiting for monitor entry [0x00000001253de000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-2" #30 prio=5 os_prio=31 tid=0x00007fed9f80c000 nid=0x3d07 waiting for monitor entry [0x000000012368e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-3-thread-1" #29 prio=5 os_prio=31 tid=0x00007fed9f80b000 nid=0x380b waiting for monitor entry [0x0000000120691000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.xmldb.LocalCollectionManagementService.lambda$createCollection$236(LocalCollectionManagementService.java:83)
    at org.exist.xmldb.LocalCollectionManagementService$$Lambda$90/2054787417.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:81)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:71)
    at org.exist.xmldb.LocalCollectionManagementService.createCollection(LocalCollectionManagementService.java:60)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:160)
    at org.exist.indexing.lucene.ConcurrencyTest.storeRemoveDocs(ConcurrencyTest.java:110)
    at org.exist.indexing.lucene.ConcurrencyTest.lambda$store$0(ConcurrencyTest.java:70)
    at org.exist.indexing.lucene.ConcurrencyTest$$Lambda$106/2110785285.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-2-thread-5" #28 prio=5 os_prio=31 tid=0x00007fed9d2d9000 nid=0x7103 waiting for monitor entry [0x0000000126ff8000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:910)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:801)
    at org.exist.xmldb.AbstractLocal.lambda$with$176(AbstractLocal.java:167)
    at org.exist.xmldb.AbstractLocal$$Lambda$89/2004628751.apply(Unknown Source)
    at org.exist.xmldb.AbstractLocal.lambda$null$174(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$101/330535317.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.AbstractLocal.lambda$modify$175(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$91/224296026.apply(Unknown Source)
    at org.exist.xmldb.LocalIndexQueryService.configureCollection(LocalIndexQueryService.java:79)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:162)
    at org.exist.indexing.lucene.ConcurrencyTest.xupdateDocs(ConcurrencyTest.java:135)
    at org.exist.indexing.lucene.ConcurrencyTest.access$000(ConcurrencyTest.java:50)
    at org.exist.indexing.lucene.ConcurrencyTest$1.run(ConcurrencyTest.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-2-thread-4" #27 prio=5 os_prio=31 tid=0x00007fed9f861800 nid=0x6f03 waiting for monitor entry [0x0000000126ef5000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.saveCollection(NativeBroker.java:1656)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.collections.CollectionConfigurationManager.addConfiguration(CollectionConfigurationManager.java:128)
    at org.exist.xmldb.LocalIndexQueryService.lambda$configureCollection$252(LocalIndexQueryService.java:82)
    at org.exist.xmldb.LocalIndexQueryService$$Lambda$96/1016713328.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbCollectionFunction.apply(LocalXmldbCollectionFunction.java:48)
    at org.exist.xmldb.AbstractLocal.lambda$with$176(AbstractLocal.java:172)
    at org.exist.xmldb.AbstractLocal$$Lambda$89/2004628751.apply(Unknown Source)
    at org.exist.xmldb.AbstractLocal.lambda$null$174(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$101/330535317.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.AbstractLocal.lambda$modify$175(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$91/224296026.apply(Unknown Source)
    at org.exist.xmldb.LocalIndexQueryService.configureCollection(LocalIndexQueryService.java:79)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:162)
    at org.exist.indexing.lucene.ConcurrencyTest.xupdateDocs(ConcurrencyTest.java:135)
    at org.exist.indexing.lucene.ConcurrencyTest.access$000(ConcurrencyTest.java:50)
    at org.exist.indexing.lucene.ConcurrencyTest$1.run(ConcurrencyTest.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-2-thread-3" #26 prio=5 os_prio=31 tid=0x00007fed9b754000 nid=0x6d03 waiting for monitor entry [0x0000000126df2000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:910)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.openCollection(NativeBroker.java:801)
    at org.exist.xmldb.AbstractLocal.lambda$with$176(AbstractLocal.java:167)
    at org.exist.xmldb.AbstractLocal$$Lambda$89/2004628751.apply(Unknown Source)
    at org.exist.xmldb.AbstractLocal.lambda$null$174(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$101/330535317.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.AbstractLocal.lambda$modify$175(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$91/224296026.apply(Unknown Source)
    at org.exist.xmldb.LocalIndexQueryService.configureCollection(LocalIndexQueryService.java:79)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:162)
    at org.exist.indexing.lucene.ConcurrencyTest.xupdateDocs(ConcurrencyTest.java:135)
    at org.exist.indexing.lucene.ConcurrencyTest.access$000(ConcurrencyTest.java:50)
    at org.exist.indexing.lucene.ConcurrencyTest$1.run(ConcurrencyTest.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-2-thread-2" #25 prio=5 os_prio=31 tid=0x00007fed9f823800 nid=0x6b03 waiting for monitor entry [0x0000000126cef000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:679)
    - waiting to lock <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.collections.CollectionConfigurationManager.addConfiguration(CollectionConfigurationManager.java:110)
    at org.exist.xmldb.LocalIndexQueryService.lambda$configureCollection$252(LocalIndexQueryService.java:82)
    at org.exist.xmldb.LocalIndexQueryService$$Lambda$96/1016713328.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbCollectionFunction.apply(LocalXmldbCollectionFunction.java:48)
    at org.exist.xmldb.AbstractLocal.lambda$with$176(AbstractLocal.java:172)
    at org.exist.xmldb.AbstractLocal$$Lambda$89/2004628751.apply(Unknown Source)
    at org.exist.xmldb.AbstractLocal.lambda$null$174(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$101/330535317.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.AbstractLocal.lambda$modify$175(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$91/224296026.apply(Unknown Source)
    at org.exist.xmldb.LocalIndexQueryService.configureCollection(LocalIndexQueryService.java:79)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:162)
    at org.exist.indexing.lucene.ConcurrencyTest.xupdateDocs(ConcurrencyTest.java:135)
    at org.exist.indexing.lucene.ConcurrencyTest.access$000(ConcurrencyTest.java:50)
    at org.exist.indexing.lucene.ConcurrencyTest$1.run(ConcurrencyTest.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"pool-2-thread-1" #24 prio=5 os_prio=31 tid=0x00007fed9b60c000 nid=0x6903 in Object.wait() [0x0000000126115000]
   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:148)
    - locked <0x00000007bbc1bfe0> (a org.exist.storage.lock.ReentrantReadWriteLock)
    at org.exist.collections.Collection.getPermissions(Collection.java:904)
    at org.exist.storage.NativeBroker.getOrCreateCollectionExplicit(NativeBroker.java:764)
    - locked <0x00000007a0acc110> (a org.exist.collections.CollectionCache)
    at org.exist.storage.NativeBroker.getOrCreateCollection(NativeBroker.java:663)
    at org.exist.collections.CollectionConfigurationManager.addConfiguration(CollectionConfigurationManager.java:110)
    at org.exist.xmldb.LocalIndexQueryService.lambda$configureCollection$252(LocalIndexQueryService.java:82)
    at org.exist.xmldb.LocalIndexQueryService$$Lambda$96/1016713328.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbCollectionFunction.apply(LocalXmldbCollectionFunction.java:48)
    at org.exist.xmldb.AbstractLocal.lambda$with$176(AbstractLocal.java:172)
    at org.exist.xmldb.AbstractLocal$$Lambda$89/2004628751.apply(Unknown Source)
    at org.exist.xmldb.AbstractLocal.lambda$null$174(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$101/330535317.applyXmldb(Unknown Source)
    at org.exist.xmldb.function.LocalXmldbFunction.apply(LocalXmldbFunction.java:46)
    at org.exist.xmldb.AbstractLocal.withDb(AbstractLocal.java:195)
    at org.exist.xmldb.AbstractLocal.lambda$modify$175(AbstractLocal.java:118)
    at org.exist.xmldb.AbstractLocal$$Lambda$91/224296026.apply(Unknown Source)
    at org.exist.xmldb.LocalIndexQueryService.configureCollection(LocalIndexQueryService.java:79)
    at org.exist.indexing.lucene.ConcurrencyTest.storeDocs(ConcurrencyTest.java:162)
    at org.exist.indexing.lucene.ConcurrencyTest.xupdateDocs(ConcurrencyTest.java:135)
    at org.exist.indexing.lucene.ConcurrencyTest.access$000(ConcurrencyTest.java:50)
    at org.exist.indexing.lucene.ConcurrencyTest$1.run(ConcurrencyTest.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"WeakMultiValueHashMap sweeper" #23 daemon prio=2 os_prio=31 tid=0x00007fed9e1d9800 nid=0x5f07 in Object.wait() [0x000000012453b000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.exist.fluent.WeakMultiValueHashMap$Sweeper.run(WeakMultiValueHashMap.java:99)
    - locked <0x00000007bbbdbbd8> (a org.exist.fluent.WeakMultiValueHashMap$Sweeper)
    at java.lang.Thread.run(Thread.java:745)

"Checkpointer" #22 daemon prio=5 os_prio=31 tid=0x00007fed9bc17800 nid=0x6703 in Object.wait() [0x0000000125b1b000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x00000007bb9f3ff8> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:745)

"Cleaner-1" #21 daemon prio=5 os_prio=31 tid=0x00007fed9bc05000 nid=0x6503 in Object.wait() [0x0000000125a18000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x00000007bb9db600> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:745)

"INCompressor" #20 daemon prio=5 os_prio=31 tid=0x00007fed9b9cd800 nid=0x6303 in Object.wait() [0x0000000125915000]
   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 <0x00000007bb8adf18> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:745)

"Thread-3" #19 prio=5 os_prio=31 tid=0x00007fed9f06e800 nid=0x6103 in Object.wait() [0x000000012473e000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.exist.storage.journal.FileSyncThread.run(FileSyncThread.java:117)
    - locked <0x00000007a0522408> (a org.exist.storage.journal.FileSyncThread)

"DefaultQuartzScheduler_QuartzSchedulerThread" #17 prio=5 os_prio=31 tid=0x00007fed9bc14800 nid=0x5d03 in Object.wait() [0x0000000124438000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:311)
    - locked <0x00000007a051ab60> (a java.lang.Object)

"DefaultQuartzScheduler_Worker-4" #16 prio=5 os_prio=31 tid=0x00007fed9b55d800 nid=0x5b03 in Object.wait() [0x0000000124335000]
   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 <0x00000007a052a580> (a java.lang.Object)

"DefaultQuartzScheduler_Worker-3" #15 prio=5 os_prio=31 tid=0x00007fed9b5f0800 nid=0x5903 in Object.wait() [0x0000000124232000]
   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 <0x00000007a0532558> (a java.lang.Object)

"DefaultQuartzScheduler_Worker-2" #14 prio=5 os_prio=31 tid=0x00007fed9b40f800 nid=0x5703 in Object.wait() [0x000000012412f000]
   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 <0x00000007a053a538> (a java.lang.Object)

"DefaultQuartzScheduler_Worker-1" #13 prio=5 os_prio=31 tid=0x00007fed9b5e9000 nid=0x5503 in Object.wait() [0x000000012402c000]
   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 <0x00000007a0522720> (a java.lang.Object)

"Service Thread" #9 daemon prio=9 os_prio=31 tid=0x00007fed9b02c000 nid=0x5103 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #8 daemon prio=9 os_prio=31 tid=0x00007fed9b02f000 nid=0x4f03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007fed9c02a800 nid=0x4d03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007fed9c029800 nid=0x4b03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007fed9b81a000 nid=0x4903 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007fed9b010000 nid=0x3913 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fed9b815800 nid=0x3503 in Object.wait() [0x00000001204fd000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000007a050c638> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fed9b814800 nid=0x3303 in Object.wait() [0x00000001203fa000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
    - locked <0x00000007a050c808> (a java.lang.ref.Reference$Lock)

"main" #1 prio=5 os_prio=31 tid=0x00007fed9b802800 nid=0x1303 waiting on condition [0x000000010cc68000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000007bb8adc98> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1465)
    at org.exist.indexing.lucene.ConcurrencyTest.store(ConcurrencyTest.java:77)
    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:497)
    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.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    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 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    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.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:532)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1179)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1030)

"VM Thread" os_prio=31 tid=0x00007fed9d836800 nid=0x3103 runnable 

"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007fed9d804800 nid=0x2103 runnable 

"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007fed9d805000 nid=0x2303 runnable 

"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007fed9d805800 nid=0x2503 runnable 

"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007fed9d806000 nid=0x2703 runnable 

"GC task thread#4 (ParallelGC)" os_prio=31 tid=0x00007fed9d807000 nid=0x2903 runnable 

"GC task thread#5 (ParallelGC)" os_prio=31 tid=0x00007fed9d807800 nid=0x2b03 runnable 

"GC task thread#6 (ParallelGC)" os_prio=31 tid=0x00007fed9c00f000 nid=0x2d03 runnable 

"GC task thread#7 (ParallelGC)" os_prio=31 tid=0x00007fed9c00f800 nid=0x2f03 runnable 

"VM Periodic Task Thread" os_prio=31 tid=0x00007fed9b02d000 nid=0x5303 waiting on condition 

JNI global references: 521


@alebastrov
Copy link

No changes still in 3.x codebase...

@dizzzz
Copy link
Member

dizzzz commented Apr 5, 2017

@adamretter reported a deadlock situation, which is a problem, and potentially hard to fix. for sure we can ping him on this PR....

@alebastrov
Copy link

We've got rid of deadlocks in 2.2, but we've put a lot of efforts into codebase 2.2 and like to see them in 3.x

@adamretter adamretter modified the milestones: eXist-3.3.0, eXist-3.2.0 May 3, 2017
@adamretter adamretter modified the milestones: eXist-3.4.0, eXist-3.3.0 Jul 3, 2017
@adamretter adamretter modified the milestones: eXist-3.4.0, eXist-3.5.0 Jul 27, 2017
@adamretter adamretter added the in progress Issue is actively being worked upon label Aug 17, 2017
@adamretter adamretter modified the milestones: eXist-3.5.0, eXist-3.6.0 Sep 28, 2017
@adamretter adamretter modified the milestones: eXist-3.6.0, eXist-3.7.0 Nov 27, 2017
@adamretter adamretter modified the milestones: eXist-3.7.0, eXist-4.1.0 Feb 14, 2018
@adamretter adamretter mentioned this pull request Apr 14, 2018
@adamretter adamretter closed this Apr 14, 2018
@adamretter adamretter deleted the 853 branch April 14, 2018 12:56
@joewiz joewiz removed in progress Issue is actively being worked upon labels Jan 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug issue confirmed as bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants