[ 
https://issues.apache.org/jira/browse/IGNITE-19389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Steshin updated IGNITE-19389:
--------------------------------------
    Description: 
Suggestion: make text of lock acquiring timeout message more certain if there 
is no attempt to acquire lock: like "Didn't try to take lock for transaction .. 
because tx hax already timeouted" instead of common "Failed to acquire lock 
within provided timeout for transaction"

We've met a case when user sees lock acquiring timeout in transaction but is 
confused in researching the cause. He expected and tried to find concurrent 
transaction, deadlocks, hanging locks, etc. Actually, lock attempt hasn't even 
launched. The timeout has already happened. Stacktrace indicates the problem, 
but it is not the best solution to a user.

The stacktrace:
{code:java}
org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException: Failed 
to acquire lock within provided timeout for transaction [timeout=30000, 
tx=GridDhtTxLocal[xid=f5c28b36881-00000000-10c7-fe43-0000-000000000016, 
xidVersion=GridCacheVersion [topVer=281542211, order=1685300194399, 
nodeOrder=22, dataCenterId=0], nearXidVersion=GridCacheVersion 
[topVer=281542211, order=1685300194398, nodeOrder=552, dataCenterId=0], 
concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=ACTIVE, 
invalidate=false, rollbackOnly=false, 
nodeId=0693b588-3677-45d8-b1a2-06aa03fa4ed8, timeout=30000, 
startTime=1673243469168, duration=30255]]
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.timeoutException(IgniteTxAdapter.java:785)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:710)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:660)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsync(GridDhtTransactionalCacheAdapter.java:1239)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest0(GridDhtTransactionalCacheAdapter.java:824)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest(GridDhtTransactionalCacheAdapter.java:802)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
{code}


  was:
Suggestion: make text of lock acquiring timeout message more certain if there 
is no attempt to acquire lock

We've met a case when user sees lock acquiring timeout in transaction but is 
confused in researching the cause. He expected and tried to find concurrent 
transaction, deadlocks, hanging locks, etc. Actually, lock attempt hasn't even 
launched. The timeout has already happened. Stacktrace indicates the problem, 
but it is not the best solution to a user.

The stacktrace:
{code:java}
org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException: Failed 
to acquire lock within provided timeout for transaction [timeout=30000, 
tx=GridDhtTxLocal[xid=f5c28b36881-00000000-10c7-fe43-0000-000000000016, 
xidVersion=GridCacheVersion [topVer=281542211, order=1685300194399, 
nodeOrder=22, dataCenterId=0], nearXidVersion=GridCacheVersion 
[topVer=281542211, order=1685300194398, nodeOrder=552, dataCenterId=0], 
concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=ACTIVE, 
invalidate=false, rollbackOnly=false, 
nodeId=0693b588-3677-45d8-b1a2-06aa03fa4ed8, timeout=30000, 
startTime=1673243469168, duration=30255]]
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.timeoutException(IgniteTxAdapter.java:785)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:710)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:660)
 ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsync(GridDhtTransactionalCacheAdapter.java:1239)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest0(GridDhtTransactionalCacheAdapter.java:824)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest(GridDhtTransactionalCacheAdapter.java:802)
 [ignite-core-2.12.0-p6.jar:2.12.0-p6]
{code}



> Make lock acquiring timeout message more certain.
> -------------------------------------------------
>
>                 Key: IGNITE-19389
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19389
>             Project: Ignite
>          Issue Type: Improvement
>    Affects Versions: 2.12
>            Reporter: Vladimir Steshin
>            Priority: Minor
>
> Suggestion: make text of lock acquiring timeout message more certain if there 
> is no attempt to acquire lock: like "Didn't try to take lock for transaction 
> .. because tx hax already timeouted" instead of common "Failed to acquire 
> lock within provided timeout for transaction"
> We've met a case when user sees lock acquiring timeout in transaction but is 
> confused in researching the cause. He expected and tried to find concurrent 
> transaction, deadlocks, hanging locks, etc. Actually, lock attempt hasn't 
> even launched. The timeout has already happened. Stacktrace indicates the 
> problem, but it is not the best solution to a user.
> The stacktrace:
> {code:java}
> org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException: 
> Failed to acquire lock within provided timeout for transaction 
> [timeout=30000, 
> tx=GridDhtTxLocal[xid=f5c28b36881-00000000-10c7-fe43-0000-000000000016, 
> xidVersion=GridCacheVersion [topVer=281542211, order=1685300194399, 
> nodeOrder=22, dataCenterId=0], nearXidVersion=GridCacheVersion 
> [topVer=281542211, order=1685300194398, nodeOrder=552, dataCenterId=0], 
> concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=ACTIVE, 
> invalidate=false, rollbackOnly=false, 
> nodeId=0693b588-3677-45d8-b1a2-06aa03fa4ed8, timeout=30000, 
> startTime=1673243469168, duration=30255]]
> at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.timeoutException(IgniteTxAdapter.java:785)
>  ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:710)
>  ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:660)
>  ~[ignite-core-2.12.0-p6.jar:2.12.0-p6]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsync(GridDhtTransactionalCacheAdapter.java:1239)
>  [ignite-core-2.12.0-p6.jar:2.12.0-p6]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest0(GridDhtTransactionalCacheAdapter.java:824)
>  [ignite-core-2.12.0-p6.jar:2.12.0-p6]
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest(GridDhtTransactionalCacheAdapter.java:802)
>  [ignite-core-2.12.0-p6.jar:2.12.0-p6]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to