-
Bug
-
Resolution: Done
-
Critical
-
10.0.0.Final
-
None
-
DataGrid Sprint #58, DataGrid Sprint #61, DataGrid Sprint #62
-
-
Undefined
Infinispan cache to run on a single node with PESSIMISTIC locking. The application is backed with Java EE and runs on the JBOSS application server. Therefore container manage EJB transaction is created using @Transaction annotation and the container is all responsible for commit and rollback created transaction. Code Structure looks like follow
structure as follows Transaction
@Transaction
public void processOrder(){
// validations
cache1.put(k,v1) // need to acquire lock
// do some action
}
if any exception found then mark rollback using sessionContext.setRollbackOnly(); inside finally block.
But under high load, if a certain cache key gets locked it will forever, and each subsequent attempt to lock the same key will result in a lock acquisition timeout exception as follow. This lock never releases and persists forever.
javax.ejb.EJBTransactionRolledbackException: ISPN000299: Unable to acquire lock after 25 seconds for key 51254 and requestor GlobalTx:local:9. Lock is held by GlobalTx:local:1
The server log file (server-1.log) also attached to this with Infinispan config xml
- is related to
-
ISPN-13159 RollbackDuringLockAcquisitionTest.testRollbackWhileWaitingForLockDuringLock random failures
- New