JBoss Community

Re: Remote Client.addCallbackListener hang

created by david malechek in JBoss Remoting - View the full discussion

Ron,

Unfortunately we had an incident with the 2.2.4 jar that locked up all remote client activity.

I tried my hand at analyzing the thread dump, let me know if you think I'm wrong.  I think it may be related to JBREM-1242 but too involved for me to figure out.

Assuming that Object@383d87 is connectionValidatorLock and Object@8ecb42 is clientLeaseLock, the threads below show that Timer-9954 and Thread-390047 block each other.  Which would only be slightly bad, but then Timer-2 blocks and then all the WorkerThreads like WorkerThread#1664 is blocked since handleClientFailure is synchronized.  There was actually a thread Timer-9953 exactly like Timer-9954 as well.

 

 

Thread: Timer-9954 : priority:5, demon:true, threadId:782301, threadState:BLOCKED, lockName:java.lang.Object@383d87

    org.jboss.remoting.Client.notifyListeners(Client.java:1781)

    ...

 

Thread: Thread-390047 : priority:5, demon:true, threadId:778140, threadState:BLOCKED, lockName:java.lang.Object@8ecb42

    org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:458)

    ...

 

Thread: Timer-2 : priority:5, demon:true, threadId:39, threadState:BLOCKED, lockName:java.lang.Object@383d87

    org.jboss.remoting.Client.disconnect(Client.java:735)

    org.jboss.remoting.callback.ServerInvokerCallbackHandler.destroy(ServerInvokerCallbackHandler.java:1016)

    org.jboss.remoting.callback.ServerInvokerCallbackHandler.shutdown(ServerInvokerCallbackHandler.java:1028)

    org.jboss.jms.server.endpoint.ServerConnectionEndpoint.closeCallbackClient(ServerConnectionEndpoint.java:474)

    org.jboss.jms.server.connectionmanager.SimpleConnectionManager.cleanupForSessionID(SimpleConnectionManager.java:468)

    org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:201)

    org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleConnectionException(SimpleConnectionManager.java:241)

    ...

   

Thread: WorkerThread#1664[10.48.16.175:56059] : priority:5, demon:false, threadId:786648, threadState:BLOCKED, lockName:org.jboss.jms.server.connectionmanager.SimpleConnectionManager@2cf63

    org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:201)

    ...

 

Thanks,

David

Reply to this message by going to Community

Start a new discussion in JBoss Remoting at Community