Put entry into backing map directly but write behind thread seems deadlock
925966May 17 2012 — edited May 18 2012Hi all,
I have a entry processor which is invoked against a cache called counterparty which has data affinity with another cache called position.
Inside the processor, I put new entry into position cache. The entry carries same counterparty key on which this is invoked.
It works just fine and I can get the entry after the processor returns.
However, the write-behind thread seems deadlock and cant insert the new entry into DB.
Is this an known issue? Or what goes wrong? Pls see below thread dump.
thanks,
Henry
Thread[PartitionedPofCacheWorker:19,5,PartitionedPofCache]
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:196)
com.tangosol.coherence.component.util.Daemon.onWait(Daemon.CDB:18)
com.tangosol.coherence.component.util.DaemonPool$Daemon.onWait(DaemonPool.CDB:9)
com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid$DaemonPool$Daemon.onWait(Grid.CDB:3)
com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:39)
java.lang.Thread.run(Thread.java:736)
Thread[UCP-worker-thread-9,5,PartitionedPofCache]
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:173)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1937)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:370)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:959)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
java.lang.Thread.run(Thread.java:736)
17 May 2012 17:01:27.120 WARN coherence - 2012-05-17 17:01:27.100/364.030 Oracle Coherence GE 3.7.1.0 <Warning> (thread=Termination Thread, member=2): Terminating Daemon{Thread="Thread[WriteBehindThread:CacheStoreWrapper(com.dbsvickers.fotsrevamp.dao.TxnAcctInstmPostnCacheStore):PartitionedPofCache,5,WriteBehindThread:CacheStoreWrapper(com.dbsvickers.fotsrevamp.dao.TxnAcctInstmPostnCacheStore):PartitionedPofCache]", State=Running}
17 May 2012 17:01:27.121 ERROR coherence - 2012-05-17 17:01:27.101/364.031 Oracle Coherence GE 3.7.1.0 <Error> (thread=Termination Thread, member=2): The write-behind thread timed out. This could be indicative of an extremely slow-running or hung CacheStore call, or deadlock.