After upgrading to 4.6.4, I will get a lot of connections in a while(maybe a week or a month). If I use ls /proc/pid/fd | wc -l
, I will see more than 3000 connections. Normally it is about 800. I use jstack -l pid> threadDump.log
command will get StreamManager deadlock. the following is a part of threadDump.log
.
threadDump10051317.log (1.5 MB)
Found one Java-level deadlock:
=============================
"TaskEngine-pool-787":
waiting for ownable synchronizer 0x00000006d681f520, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "TaskEngine-pool-769"
"TaskEngine-pool-769":
waiting to lock monitor 0x00005639a8021cb8 (object 0x00000006b29a2b50, a org.jivesoftware.openfire.streammanagement.StreamManager),
which is held by "TaskEngine-pool-765"
"TaskEngine-pool-765":
waiting for ownable synchronizer 0x00000006d681f520, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "TaskEngine-pool-769"
Java stack information for the threads listed above:
===================================================
"TaskEngine-pool-787":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006d681f520> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:621)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-769":
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:996)
- waiting to lock <0x00000006b29a2b50> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-765":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006d681f520> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUnavailableForDirectedPresences(PresenceUpdateHandler.java:490)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:167)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
- locked <0x00000006b29a2940> (a java.util.HashMap)
at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
at java.util.Optional.ifPresent(Optional.java:159)
at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
- locked <0x00000006b29a2b50> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:605)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:309)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:166)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
- locked <0x00000006ac7a7e68> (a java.util.HashMap)
at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
at java.util.Optional.ifPresent(Optional.java:159)
at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
- locked <0x00000006ac7ad388> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:605)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:309)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:166)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
- locked <0x00000006b35efe20> (a java.util.HashMap)
at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
at java.util.Optional.ifPresent(Optional.java:159)
at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
- locked <0x00000006b35f0030> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Found one Java-level deadlock:
=============================
"Jetty-QTP-BOSH-26722":
waiting for ownable synchronizer 0x00000006b01d9500, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "TaskEngine-pool-532"
"TaskEngine-pool-532":
waiting to lock monitor 0x00005639a6e504a8 (object 0x00000006ad5a85e8, a org.jivesoftware.openfire.streammanagement.StreamManager),
which is held by "Jetty-QTP-BOSH-17488"
"Jetty-QTP-BOSH-17488":
waiting for ownable synchronizer 0x00000006b01d9500, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "TaskEngine-pool-532"
Java stack information for the threads listed above:
===================================================
"Jetty-QTP-BOSH-26722":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006b01d9500> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:118)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:69)
at org.jivesoftware.openfire.websocket.StreamManagementPacketRouter.route(StreamManagementPacketRouter.java:61)
at org.jivesoftware.openfire.websocket.XmppWebSocket.processStanza(XmppWebSocket.java:246)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onTextMethod(XmppWebSocket.java:116)
at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:113)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:168)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:92)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
at java.lang.Thread.run(Thread.java:748)
"TaskEngine-pool-532":
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:996)
- waiting to lock <0x00000006ad5a85e8> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:349)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:425)
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.checkForTimedOutUsers(MultiUserChatServiceImpl.java:660)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.access$000(MultiUserChatServiceImpl.java:105)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl$UserTimeoutTask.run(MultiUserChatServiceImpl.java:550)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"Jetty-QTP-BOSH-17488":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000006b01d9500> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at org.jivesoftware.util.AutoCloseableReentrantLock.lock(AutoCloseableReentrantLock.java:71)
at org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl.processPacket(MultiUserChatServiceImpl.java:414)
at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents.process(InternalComponentManager.java:859)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToComponent(RoutingTableImpl.java:451)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:266)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:165)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUnavailableForDirectedPresences(PresenceUpdateHandler.java:490)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:167)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:134)
at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:202)
at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:143)
at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:79)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:84)
at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClose(SessionManager.java:1293)
at org.jivesoftware.openfire.net.VirtualConnection.notifyCloseListeners(VirtualConnection.java:243)
- locked <0x00000006ad5a83d8> (a java.util.HashMap)
at org.jivesoftware.openfire.net.VirtualConnection.close(VirtualConnection.java:210)
at org.jivesoftware.openfire.session.LocalSession$$Lambda$231/2101680636.accept(Unknown Source)
at java.util.Optional.ifPresent(Optional.java:159)
at org.jivesoftware.openfire.session.LocalSession.close(LocalSession.java:477)
at org.jivesoftware.openfire.websocket.XmppWebSocket.closeSession(XmppWebSocket.java:167)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onClose(XmppWebSocket.java:102)
at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onClose(JettyAnnotatedEventDriver.java:164)
at org.eclipse.jetty.websocket.common.WebSocketSession.callApplicationOnClose(WebSocketSession.java:394)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:225)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection$Flusher.onCompleteFailure(AbstractWebSocketConnection.java:100)
at org.eclipse.jetty.util.IteratingCallback.failed(IteratingCallback.java:402)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:188)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:581)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextOutgoingFrame(AbstractExtension.java:157)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextOutgoingFrame(PerMessageDeflateExtension.java:125)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.access$1100(CompressExtension.java:44)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.compress(CompressExtension.java:579)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.deflate(CompressExtension.java:478)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension$Flusher.process(CompressExtension.java:458)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.outgoingFrame(CompressExtension.java:241)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack$Flusher.process(ExtensionStack.java:403)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.outgoingFrame(ExtensionStack.java:280)
at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:360)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
at org.jivesoftware.openfire.websocket.XmppWebSocket.deliver(XmppWebSocket.java:193)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliverRawText(WebSocketConnection.java:101)
at org.jivesoftware.openfire.websocket.WebSocketConnection.deliver(WebSocketConnection.java:91)
at org.jivesoftware.openfire.session.LocalClientSession.deliver(LocalClientSession.java:1000)
- locked <0x00000006ad5a85e8> (a org.jivesoftware.openfire.streammanagement.StreamManager)
at org.jivesoftware.openfire.session.LocalSession.process(LocalSession.java:411)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToBareJID(RoutingTableImpl.java:634)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:326)
at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:262)
at org.jivesoftware.openfire.MessageRouter.route(MessageRouter.java:134)
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:79)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:111)
at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:66)
at org.jivesoftware.openfire.websocket.StreamManagementPacketRouter.route(StreamManagementPacketRouter.java:61)
at org.jivesoftware.openfire.websocket.XmppWebSocket.processStanza(XmppWebSocket.java:246)
at org.jivesoftware.openfire.websocket.XmppWebSocket.onTextMethod(XmppWebSocket.java:116)
at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:72)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:113)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:168)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:92)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
at java.lang.Thread.run(Thread.java:748)
Found 2 deadlocks.