I think that looks more or less "expected" to me, but I'm sure that is a
subjective opinion. 

I think by definition "operationsDisabled()" means that you're no longer
connected to the cluster. Now whether locks should hang (vs. throw
exceptions) is another matter. 

>From the stack trace it looks like this is happening when the L1 VM is
trying to exit. I wasn't aware that we fired operationsDisabled() in that
path, but I think it makes sense.

> -----Original Message-----
> From: tc-dev-boun...@lists.terracotta.org [mailto:tc-dev-
> boun...@lists.terracotta.org] On Behalf Of Sergio Bossa
> Sent: Monday, January 18, 2010 4:19 AM
> To: tc-dev
> Subject: [tc-dev] L1 hanging when l2.l1reconnect.enabled set to true
> 
> Hi guys,
> 
> I noticed that with the "l2.l1reconnect.enabled" property set to true,
> I'm no more able to acquire clustered locks on "operationsDisabled"
> method of cluster events API.
> The L1 application hangs as follows:
> 
> "CommonShutDownHook" daemon prio=5 tid=0x0000000101afb000
> nid=0x14af3a000 in Object.wait() [0x000000014af39000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x000000010a91ad80> (a
> com.tcclient.util.concurrent.locks.ConditionObject$SyncCondition)
>         at java.lang.Object.wait(Object.java:485)
>         at
> com.tc.object.bytecode.ManagerImpl.wait(ManagerImpl.java:812)
>         at
> com.tc.object.bytecode.ManagerUtil.objectWait(ManagerUtil.java:508)
>         at
> com.tcclient.util.concurrent.locks.ConditionObject.await(ConditionObjec
> t.java:103)
>         at
> com.tc.object.locks.ClientLockManagerImpl.waitUntilRunning(ClientLockMa
> nagerImpl.java:588)
>         at
> com.tc.object.locks.ClientLockManagerImpl.lock(ClientLockManagerImpl.ja
> va:89)
>         at
> com.tc.object.bytecode.ManagerImpl.lock(ManagerImpl.java:718)
>         at
> com.tc.object.bytecode.ManagerUtil.monitorEnter(ManagerUtil.java:547)
>         at java.util.concurrent.locks.ReentrantLock.lock(Unknown
> Source)
>         at
> terrastore.cluster.impl.TCCluster.operationsDisabled(TCCluster.java:156
> )
>         at
> com.tc.cluster.DsoClusterImpl.fireOperationsDisabledInternal(DsoCluster
> Impl.java:395)
>         at
> com.tc.cluster.DsoClusterImpl.fireOperationsDisabled(DsoClusterImpl.jav
> a:388)
>         at
> com.tc.object.handshakemanager.ClientHandshakeManagerImpl.notifyChannel
> Event(ClientHandshakeManagerImpl.java:135)
>         at
> com.tc.net.protocol.tcm.AbstractMessageChannel.fireEvent(AbstractMessag
> eChannel.java:244)
>         at
> com.tc.net.protocol.tcm.AbstractMessageChannel.fireChannelClosedEvent(A
> bstractMessageChannel.java:135)
>         at
> com.tc.net.protocol.tcm.AbstractMessageChannel.close(AbstractMessageCha
> nnel.java:147)
>         at
> com.tc.object.DSOClientMessageChannelImpl.close(DSOClientMessageChannel
> Impl.java:88)
>         at
> com.tc.object.DistributedObjectClient$2.run(DistributedObjectClient.jav
> a:726)
>         at
> com.tc.util.CommonShutDownHook.run(CommonShutDownHook.java:37)
>         at java.lang.Thread.run(Thread.java:637)
> 
> Is it as expected? Is it a bug?
> Thanks,
> Cheers,
> 
> Sergio B.
> 
> --
> Sergio Bossa
> Software Passionate and Open Source Enthusiast.
> URL: http://www.linkedin.com/in/sergiob
> _______________________________________________
> tc-dev mailing list
> tc-dev@lists.terracotta.org
> http://lists.terracotta.org/mailman/listinfo/tc-dev
_______________________________________________
tc-dev mailing list
tc-dev@lists.terracotta.org
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to