[ 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)