Server Hang due to dead Lock
rseetharaman Mar 12, 2009 3:23 AMHi,
We experienced a server hang a couple of days back and analyzed the thread dump. We use JBoss 4.2 GA, JBM 1.4. The sever seems to hang due to the 2 threads below.
The Thread: Thread-136 : has the WriterpreferenceLock and the MessageSucker Lock and is waiting for the lock to be released on java.lang.Object@1b6b0a1. While the Thread Thread-50 has the lock on java.lang.Object@1b6b0a1 and is waiting for MessageSucker leading to the Dead Lock Situation.
Could publish the full dump after I confirm that I have the necessary permissions. Any hint on how to avoid this would really be appreciated.
Ranga
Thread: Thread-136 : priority:5, demon:true, threadId:44755, threadState:BLOCKED, lockName:java.lang.Object@1b6b0a1 org.jboss.messaging.core.impl.MessagingQueue.unregisterSucker(MessagingQueue.java:386) --------------------------------------------------------------------------------- The previous method call is waiting for Lock java.lang.Object@1b6b0a1 --------------------------------------------------------------------------------- org.jboss.messaging.core.impl.clusterconnection.MessageSucker.stop(MessageSucker.java:178) --------------------------------------------------------------------------------- The previous method call seems to have the the Lock on Message Sucker. --------------------------------------------------------------------------------- org.jboss.messaging.core.impl.clusterconnection.ClusterConnectionManager.removeSucker(ClusterConnectionManager.java:508) org.jboss.messaging.core.impl.clusterconnection.ClusterConnectionManager.notify(ClusterConnectionManager.java:384) org.jboss.messaging.core.impl.DefaultClusterNotifier.sendNotification(DefaultClusterNotifier.java:72) org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.removeBindingInMemory(MessagingPostOffice.java:2339) --------------------------------------------------------------------------------- The previous method call seems to have the the Writer Preference Lock --------------------------------------------------------------------------------- org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.cleanDataForNode(MessagingPostOffice.java:2690) org.jboss.messaging.core.impl.postoffice.MessagingPostOffice.nodesLeft(MessagingPostOffice.java:963) org.jboss.messaging.core.impl.postoffice.GroupMember$ControlMembershipListener$1ViewChangeRunnable.run(GroupMember.java:517) java.lang.Thread.run(Thread.java:595) Thread: Thread-50 : priority:5, demon:false, threadId:220, threadState:BLOCKED, lockName:org.jboss.messaging.core.impl.clusterconnection.MessageSucker@eb9dfa org.jboss.messaging.core.impl.clusterconnection.MessageSucker.setConsuming(MessageSucker.java:208) --------------------------------------------------------------------------------- The previous method call is waiting for Lock org.jboss.messaging.core.impl.clusterconnection.MessageSucker@eb9dfa --------------------------------------------------------------------------------- org.jboss.messaging.core.impl.MessagingQueue.informSuckers(MessagingQueue.java:565) org.jboss.messaging.core.impl.MessagingQueue.deliverInternal(MessagingQueue.java:515) org.jboss.messaging.core.impl.ChannelSupport.deliver(ChannelSupport.java:226) ----------------------------------------- The previous method call seems to have the the lock on java.lang.Object@1b6b0a1" ----------------------------------------- org.jboss.jms.server.endpoint.ServerSessionEndpoint$2.run(ServerSessionEndpoint.java:1598) EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(QueuedExecutor.java:89) java.lang.Thread.run(Thread.java:595)