[Logo] Terracotta Discussion Forums
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
Terracotta becomes blocked in ManagerUtil.monitorExit()  XML
Forum Index -> Terracotta Platform
Author Message
davidpp

neo

Joined: 02/02/2010 09:42:48
Messages: 2
Offline

I'm using Terracotta 3.0.
I have several processes in the same machine clustered by Terracotta.
I've observed that they become dead locked.

Here are the stack traces:

Process 1:

at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at com.tc.object.tx.RemoteTransactionManagerImpl.waitUntilRunning(RemoteTransactionManagerImpl.java:446)
at com.tc.object.tx.RemoteTransactionManagerImpl.commit(RemoteTransactionManagerImpl.java:252)
at com.tc.object.tx.ClientTransactionManagerImpl.commitInternal(ClientTransactionManagerImpl.java:531)
at com.tc.object.tx.ClientTransactionManagerImpl.commit(ClientTransactionManagerImpl.java:495)
at com.tc.object.tx.ClientTransactionManagerImpl.commit(ClientTransactionManagerImpl.java:423)
at com.tc.object.bytecode.ManagerImpl.monitorExit(ManagerImpl.java:550)
at com.tc.object.bytecode.ManagerUtil.monitorExit(ManagerUtil.java:481)

Process 2, 3 , 4 and 5:

java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
com.tc.object.lockmanager.impl.ClientLock.waitForLock(ClientLock.java:687)
com.tc.object.lockmanager.impl.ClientLock.basicLock(ClientLock.java:241)
com.tc.object.lockmanager.impl.ClientLock.lock(ClientLock.java:132)
com.tc.object.lockmanager.impl.ClientLock.lock(ClientLock.java:119)
com.tc.object.lockmanager.impl.ClientLockManagerImpl.lock(ClientLockManagerImpl.java:341)
com.tc.object.lockmanager.impl.StripedClientLockManagerImpl.lock(StripedClientLockManagerImpl.java:105)
com.tc.object.lockmanager.impl.ThreadLockManagerImpl.lock(ThreadLockManagerImpl.java:46)
com.tc.object.tx.ClientTransactionManagerImpl.begin(ClientTransactionManagerImpl.java:228)
com.tc.object.bytecode.ManagerImpl.begin(ManagerImpl.java:355)
com.tc.object.bytecode.ManagerImpl.monitorEnter(ManagerImpl.java:531)
com.tc.object.bytecode.ManagerUtil.monitorEnter(ManagerUtil.java:472)



Clearly, process 1 is blocked in monitorExit(), preventing the other ones to wake up.

I can understand why a thread is blocked in monitorEnter(), but not in monitorExit(). Is this a bug in Terracotta or some misconfiguration?

Thanks in advance for any tip.
gbevin

qaestor

Joined: 07/04/2007 09:09:42
Messages: 196
Offline

I suggest that you upgrade to the latest version of Terracotta. We've gone through a major overhaul of the entire locking system, which eradicated a number of outstanding problems and also increased performance a lot.

Want to post to this forum? Join the Terracotta Community
davidpp

neo

Joined: 02/02/2010 09:42:48
Messages: 2
Offline

Thanks a lot for your useful answer.
 
Forum Index -> Terracotta Platform
Go to:   
Powered by JForum 2.1.7 © JForum Team