[ 
https://issues.apache.org/jira/browse/IGNITE-11591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17039061#comment-17039061
 ] 

Nikolai Kulagin edited comment on IGNITE-11591 at 2/18/20 1:11 PM:
-------------------------------------------------------------------

[~ivan.glukos], if I understand correctly, then
 # Include information about pending locks in the error message;
 # Print a dump from IGNITE-11059 no more than "n" times per minute (for 
transactions with timeout less than a minute); {color:#505f79}Something similar 
to GridLogThrottle?{color}
 # Make "n" configurable.

"n" is the messages rate.
 


was (Author: zzzadruga):
[~ivan.glukos], if I understand correctly, then
 # Include information about pending locks in the error message;
 # Print a dump from IGNITE-11059 no more than "n" times per minute (for 
transactions with timeout less than a minute);
 # Make "n" configurable.

"n" is the messages rate.

> Add info about lock candidates that are ahead in queue to transaction timeout 
> error message
> -------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-11591
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11591
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Ivan Rakov
>            Priority: Major
>             Fix For: 2.9
>
>
> If transaction is timed out due to lock acquisition failure, corresponding 
> error will show up in server log on DHT (primary) node:
> {code:java}
> [2019-03-20 
> 21:13:10,831][ERROR][grid-timeout-worker-#23%transactions.TxRollbackOnTimeoutTest0%][GridDhtColocatedCache]
>  <test> Failed to acquire lock for request: GridNearLockRequest 
> [topVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], miniId=1, 
> dhtVers=GridCacheVersion[] [null], 
> subjId=651a30e1-45ac-4b35-86d2-028d1f81d8dc, taskNameHash=0, createTtl=-1, 
> accessTtl=-1, flags=6, txLbl=null, filter=null, 
> super=GridDistributedLockRequest 
> [nodeId=651a30e1-45ac-4b35-86d2-028d1f81d8dc, nearXidVer=GridCacheVersion 
> [topVer=164585585, order=1553105588524, nodeOrder=4], threadId=262, 
> futId=5967e4c9961-d32ea2a6-1789-47d7-bdbf-aa66e6d8c35b, timeout=890, 
> isInTx=true, isInvalidate=false, isRead=false, isolation=REPEATABLE_READ, 
> retVals=[false], txSize=2, flags=0, keysCnt=1, 
> super=GridDistributedBaseMessage [ver=GridCacheVersion [topVer=164585585, 
> order=1553105588524, nodeOrder=4], committedVers=null, rolledbackVers=null, 
> cnt=0, super=GridCacheIdMessage [cacheId=3556498]]]]
> class 
> org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException: 
> Failed to acquire lock within provided timeout for transaction [timeout=890, 
> tx=GridDhtTxLocal[xid=f219e4c9961-00000000-09cf-6071-0000-000000000001, 
> xidVersion=GridCacheVersion [topVer=164585585, order=1553105588527, 
> nodeOrder=1], concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, 
> state=MARKED_ROLLBACK, invalidate=false, rollbackOnly=true, 
> nodeId=c7dccddb-dee1-4499-94b1-038963500000, timeout=890, duration=891]]
>       at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter$PostLockClosure1.apply(IgniteTxLocalAdapter.java:1766)
>       at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter$PostLockClosure1.apply(IgniteTxLocalAdapter.java:1714)
>       at 
> org.apache.ignite.internal.util.future.GridEmbeddedFuture$2.applyx(GridEmbeddedFuture.java:86)
>       at 
> org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:292)
>       at 
> org.apache.ignite.internal.util.future.GridEmbeddedFuture$AsyncListener1.apply(GridEmbeddedFuture.java:285)
>       at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399)
>       at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347)
>       at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335)
>       at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheCompoundIdentityFuture.onDone(GridCacheCompoundIdentityFuture.java:56)
>       at 
> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onComplete(GridDhtLockFuture.java:793)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.access$900(GridDhtLockFuture.java:89)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture$LockTimeoutObject.onTimeout(GridDhtLockFuture.java:1189)
>       at 
> org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:234)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>       at java.lang.Thread.run(Thread.j
> {code}
> It would be much more useful if this message also contained information about 
> transaction that actually owns corresponding lock (or information about all 
> transactions that are ahead in queue if there are several).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to