cdennis wrote:
I've looked over the thread dumps here and I see no evidence of any kind of deadlock occurring in the product. I do see that you are using explicit locking on the cache - one thing that could cause this issue would be if there were unbalanced lock/unlock calls through the explicit locking API. It would be likely be worth your while to double check all of your code that interacts with the explicit locking API to confirm that there are no errors there.
Also, if you are a paying customer and have a support contract with us, it would definitely be best to pursue this through the regular support channels.
Chris
Thanks for your reply.
Some time ago, we didn't using explicit lock, and had the problem.
Then we add the explicit locking, Code:
put data
try{
cache.acquireWriteLockOnKey(ele.getObjectKey());
cache.put(ele);
}finally{
cache.releaseWriteLockOnKey(ele.getObjectKey());
}
---------------------------------------------
get data
try{
cache.acquireReadLockOnKey(key);
ele = cache.get(key);
}
finally{
cache.releaseReadLockOnKey(key);
}
Other I feel confused that why the put/get cache is blocking at AbstractLockedOffHeapHashMap?
at com.terracottatech.offheapstore.AbstractLockedOffHeapHashMap.put(AbstractLockedOffHeapHashMap.java:130)
at com.terracottatech.offheapstore.AbstractLockedOffHeapHashMap.getAndSetMetadata(AbstractLockedOffHeapHashMap.java:280)
Who hold the lock in the AbstractLockedOffHeapHashMap and not release?