After updating from 4.1.0_81 to 4.1.0_93 I started getting these deadlocks.
Note: I was told to make an issue in the support server
Found one Java-level deadlock:
=============================
"JDA [7 / 18] AudioLifeCycle-Worker 1":
waiting for ownable synchronizer 0x000000061711e818, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
which is held by "JDA [7 / 18] MainWS-ReadThread"
"JDA [7 / 18] MainWS-ReadThread":
waiting for ownable synchronizer 0x000000069dbda1d0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "JDA [7 / 18] AudioLifeCycle-Worker 1"
Java stack information for the threads listed above:
===================================================
"JDA [7 / 18] AudioLifeCycle-Worker 1":
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x000000061711e818> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared([email protected]/AbstractQueuedSynchronizer.java:1009)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared([email protected]/AbstractQueuedSynchronizer.java:1324)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock([email protected]/ReentrantReadWriteLock.java:738)
at net.dv8tion.jda.internal.utils.cache.ReadWriteLockCache.readLock(ReadWriteLockCache.java:48)
at net.dv8tion.jda.internal.utils.cache.AbstractCacheView.get(AbstractCacheView.java:70)
at net.dv8tion.jda.internal.entities.GuildImpl.getAudioManager(GuildImpl.java:667)
at net.dv8tion.jda.internal.audio.AudioWebSocket.locked(AudioWebSocket.java:552)
at net.dv8tion.jda.internal.audio.AudioWebSocket.close(AudioWebSocket.java:153)
at net.dv8tion.jda.internal.audio.AudioConnection.close(AudioConnection.java:173)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.lambda$closeAudioConnection$1(AudioManagerImpl.java:146)
at net.dv8tion.jda.internal.managers.AudioManagerImpl$$Lambda$850/0x0000000840738c40.run(Unknown Source)
at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:143)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.closeAudioConnection(AudioManagerImpl.java:142)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.lambda$closeAudioConnection$0(AudioManagerImpl.java:136)
at net.dv8tion.jda.internal.managers.AudioManagerImpl$$Lambda$849/0x0000000840738840.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run([email protected]/ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
at java.lang.Thread.run([email protected]/Thread.java:834)
"JDA [7 / 18] MainWS-ReadThread":
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x000000069dbda1d0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireInterruptibly([email protected]/AbstractQueuedSynchronizer.java:943)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly([email protected]/AbstractQueuedSynchronizer.java:1263)
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly([email protected]/ReentrantLock.java:317)
at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:142)
at net.dv8tion.jda.internal.handle.GuildDeleteHandler.handleInternally(GuildDeleteHandler.java:104)
at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:36)
- locked <0x000000066129b3e0> (a net.dv8tion.jda.internal.handle.GuildDeleteHandler)
at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:847)
at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:741)
at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:720)
at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:885)
at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)
Found 1 deadlock.
and
Found one Java-level deadlock:
=============================
"JDA [0 / 1] MainWS-ReadThread":
waiting for ownable synchronizer 0x0000000725d1a6c8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "JDA [0 / 1] AudioLifeCycle-Worker 1"
"JDA [0 / 1] AudioLifeCycle-Worker 1":
waiting for ownable synchronizer 0x0000000581ef4d20, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
which is held by "JDA [0 / 1] MainWS-ReadThread"
Java stack information for the threads listed above:
===================================================
"JDA [0 / 1] MainWS-ReadThread":
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x0000000725d1a6c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireInterruptibly([email protected]/AbstractQueuedSynchronizer.java:943)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly([email protected]/AbstractQueuedSynchronizer.java:1263)
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly([email protected]/ReentrantLock.java:317)
at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:142)
at net.dv8tion.jda.internal.handle.GuildDeleteHandler.handleInternally(GuildDeleteHandler.java:104)
at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:37)
- locked <0x0000000581ca6d98> (a net.dv8tion.jda.internal.handle.GuildDeleteHandler)
at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:843)
at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:739)
at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:718)
at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:881)
at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)
"JDA [0 / 1] AudioLifeCycle-Worker 1":
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x0000000581ef4d20> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared([email protected]/AbstractQueuedSynchronizer.java:1009)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared([email protected]/AbstractQueuedSynchronizer.java:1324)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock([email protected]/ReentrantReadWriteLock.java:738)
at net.dv8tion.jda.internal.utils.cache.ReadWriteLockCache.readLock(ReadWriteLockCache.java:48)
at net.dv8tion.jda.internal.utils.cache.AbstractCacheView.get(AbstractCacheView.java:70)
at net.dv8tion.jda.internal.entities.GuildImpl.getAudioManager(GuildImpl.java:657)
at net.dv8tion.jda.internal.audio.AudioWebSocket.locked(AudioWebSocket.java:552)
at net.dv8tion.jda.internal.audio.AudioWebSocket.close(AudioWebSocket.java:153)
at net.dv8tion.jda.internal.audio.AudioConnection.close(AudioConnection.java:172)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.lambda$closeAudioConnection$1(AudioManagerImpl.java:146)
at net.dv8tion.jda.internal.managers.AudioManagerImpl$$Lambda$928/0x0000000840792440.run(Unknown Source)
at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:143)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.closeAudioConnection(AudioManagerImpl.java:142)
at net.dv8tion.jda.internal.managers.AudioManagerImpl.lambda$closeAudioConnection$0(AudioManagerImpl.java:136)
at net.dv8tion.jda.internal.managers.AudioManagerImpl$$Lambda$927/0x0000000840792040.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run([email protected]/ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
at java.lang.Thread.run([email protected]/Thread.java:834)
Found 1 deadlock.
This deadlock is actually a lot older, it should also be possible on the first release of 4.0.0
This should be fixed in 4.1.0_100
Most helpful comment
This should be fixed in 4.1.0_100