Fix deadlock when using old SSL method

Description

@4000000045cbc23005095844 Found one Java-level deadlock:
@4000000045cbc23005098b0c =============================
@4000000045cbc23005098ef4 "client_ssl-14":
@4000000045cbc230050992dc waiting to lock monitor 0x0811628c (object 0x7a867858, a org.apache.mina.filter.support.SSLHandler),
@4000000045cbc2300509c5a4 which is held by "client_ssl-16"
@4000000045cbc2300509f86c "client_ssl-16":
@4000000045cbc2300509fc54 waiting to lock monitor 0x0811610c (object 0x7939ec68, a org.apache.mina.filter.support.SSLHandler),
@4000000045cbc230050a003c which is held by "client_ssl-14"
@4000000045cbc230050a756c
@4000000045cbc230050a7954 Java stack information for the threads listed above:
@4000000045cbc230050a7d3c ===================================================
@4000000045cbc230050a8124 "client_ssl-14":
@4000000045cbc230050a850c at org.apache.mina.filter.SSLFilter.filterWrite(SSLFilter.java:453)
@4000000045cbc230050ab7d4 - waiting to lock <0x7a867858> (a org.apache.mina.filter.support.SSLHandler)
@4000000045cbc230050abfa4 at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc230050ac774 at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilterChain.java:54)
@4000000045cbc230050afa3c at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:824)
@4000000045cbc230050b020c at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:213)
@4000000045cbc230050b05f4 at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc230050b3ca4 at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilterChain.java:54)
@4000000045cbc230050b408c at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:824)
@4000000045cbc230050b485c at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(AbstractIoFilterChain.java:727)
@4000000045cbc230050b7b24 at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc230050b82f4 at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:436)
@4000000045cbc230050b8ac4 at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:197)
@4000000045cbc230050bbd8c at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:149)
@4000000045cbc230050bc55c at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:135)
@4000000045cbc230050bc944 at org.jivesoftware.wildfire.nio.NIOConnection.deliver(NIOConnection.java:214)
@4000000045cbc230050bfc0c at org.jivesoftware.wildfire.session.ClientSession.deliver(ClientSession.java:729)
@4000000045cbc230050bfff4 at org.jivesoftware.wildfire.session.Session.process(Session.java:281)
@4000000045cbc230050c32bc at org.jivesoftware.wildfire.roster.Roster.broadcastPresence(Roster.java:587)
@4000000045cbc230050c3a8c at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:256)
@4000000045cbc230050c6d54 at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:100)
@4000000045cbc230050c7524 at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:88)
@4000000045cbc230050c790c at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:151)
@4000000045cbc230050cabd4 at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:123)
@4000000045cbc230050cb3a4 at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:69)
@4000000045cbc230050cb78c at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)
@4000000045cbc230050cea54 at org.jivesoftware.wildfire.net.StanzaHandler.processPresence(StanzaHandler.java:300)
@4000000045cbc230050cf224 at org.jivesoftware.wildfire.net.ClientStanzaHandler.processPresence(ClientStanzaHandler.java:85)
@4000000045cbc230050cf60c at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:225)
@4000000045cbc230050d28d4 at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:147)
@4000000045cbc230050d30a4 at org.jivesoftware.wildfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:126)
@4000000045cbc230050d636c at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
@4000000045cbc230050d6b3c at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc230050de06c at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc230050de454 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc230050dec24 at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
@4000000045cbc230050df00c at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:186)
@4000000045cbc230050e171c at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc230050e51b4 at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc230050e559c at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc230050e5d6c at org.apache.mina.filter.SSLFilter.handleAppDataRead(SSLFilter.java:626)
@4000000045cbc230050e6154 at org.apache.mina.filter.SSLFilter.handleSSLData(SSLFilter.java:604)
@4000000045cbc230050e653c at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:395)
@4000000045cbc230050ebb2c - locked <0x7939ec68> (a org.apache.mina.filter.support.SSLHandler)
@4000000045cbc230050ec2fc at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc230050ec6e4 at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc230050efd94 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc230050f0564 at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:250)
@4000000045cbc230050f382c at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305)
@4000000045cbc230050f6af4 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
@4000000045cbc230050f9dbc at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
@4000000045cbc230050fa1a4 at java.lang.Thread.run(Thread.java:595)
@4000000045cbc23005100b1c "client_ssl-16":
@4000000045cbc23005103de4 at org.apache.mina.filter.SSLFilter.filterWrite(SSLFilter.java:453)
@4000000045cbc230051045b4 - waiting to lock <0x7939ec68> (a org.apache.mina.filter.support.SSLHandler)
@4000000045cbc2300510787c at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc23005107c64 at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilterChain.java:54)
@4000000045cbc2300510b314 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:824)
@4000000045cbc2300510b6fc at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:213)
@4000000045cbc2300510becc at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc2300510f57c at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilterChain.java:54)
@4000000045cbc2300510f964 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:824)
@4000000045cbc23005110134 at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(AbstractIoFilterChain.java:727)
@4000000045cbc230051133fc at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:445)
@4000000045cbc23005113bcc at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:436)
@4000000045cbc2300511439c at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:197)
@4000000045cbc2300511d424 at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:149)
@4000000045cbc2300511d80c at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:135)
@4000000045cbc2300511dbf4 at org.jivesoftware.wildfire.nio.NIOConnection.deliver(NIOConnection.java:214)
@4000000045cbc2300511e3c4 at org.jivesoftware.wildfire.session.ClientSession.deliver(ClientSession.java:729)
@4000000045cbc2300511e7ac at org.jivesoftware.wildfire.session.Session.process(Session.java:281)
@4000000045cbc23005120ebc at org.jivesoftware.wildfire.roster.Roster.broadcastPresence(Roster.java:587)
@4000000045cbc230051212a4 at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:256)
@4000000045cbc23005124954 at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:100)
@4000000045cbc23005124d3c at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:88)
@4000000045cbc2300512550c at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:151)
@4000000045cbc230051258f4 at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:123)
@4000000045cbc23005125cdc at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:69)
@4000000045cbc230051283ec at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)
@4000000045cbc2300512b6b4 at org.jivesoftware.wildfire.net.StanzaHandler.processPresence(StanzaHandler.java:300)
@4000000045cbc2300512be84 at org.jivesoftware.wildfire.net.ClientStanzaHandler.processPresence(ClientStanzaHandler.java:85)
@4000000045cbc2300512c26c at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:225)
@4000000045cbc2300512ca3c at org.jivesoftware.wildfire.net.StanzaHandler.process(StanzaHandler.java:147)
@4000000045cbc2300512ce24 at org.jivesoftware.wildfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:126)
@4000000045cbc23005132414 at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
@4000000045cbc230051327fc at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc23005132fcc at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc230051333b4 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc23005135ac4 at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
@4000000045cbc23005139174 at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:186)
@4000000045cbc2300513955c at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc23005139d2c at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc2300513a114 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc2300513c824 at org.apache.mina.filter.SSLFilter.handleAppDataRead(SSLFilter.java:626)
@4000000045cbc2300513cc0c at org.apache.mina.filter.SSLFilter.handleSSLData(SSLFilter.java:604)
@4000000045cbc230051402bc at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:395)
@4000000045cbc230051406a4 - locked <0x7a867858> (a org.apache.mina.filter.support.SSLHandler)
@4000000045cbc23005140a8c at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
@4000000045cbc2300514125c at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
@4000000045cbc23005141644 at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
@4000000045cbc23005143d54 at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:250)
@4000000045cbc2300514aab4 at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305)
@4000000045cbc2300514b284 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
@4000000045cbc2300514ba54 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
@4000000045cbc2300514be3c at java.lang.Thread.run(Thread.java:595)
@4000000045cbc2300517f674
@4000000045cbc2300517fa5c Found 1 deadlock.

Environment

None

Activity

Show:
Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created February 9, 2007 at 9:47 AM
Updated February 9, 2007 at 10:00 AM
Resolved February 9, 2007 at 10:00 AM