ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrei Aleksandrov <aealexsand...@gmail.com>
Subject Re: TimeoutException not wrapped in CacheException
Date Fri, 09 Aug 2019 15:35:42 GMT
Hi,

Sorry, it's my fault.

I thought that you get TransactionTimeoutExceptionfrom from some 
IgniteCache method. So it's not expected there.

 From commit method you can't get the CacheException of course.

So I guess that you should handle only exceptions that mentioned in Java 
Doc.

BR,
Andrei

8/9/2019 6:21 PM, Andrey Davydov пишет:
> As I see In javadocs for org.apache.ignite.transactions.Transaction
>
>     /**
>      * Commits this transaction by initiating {@code two-phase-commit} 
> process.
>      *
>      * @throws IgniteException If commit failed.
>      * @throws TransactionTimeoutException If transaction is timed out.
>      * @throws TransactionRollbackException If transaction is 
> automatically rolled back.
>      * @throws TransactionOptimisticException If transaction 
> concurrency is {@link TransactionConcurrency#OPTIMISTIC}
>      * and commit is optimistically failed.
>      * @throws TransactionHeuristicException If transaction has 
> entered an unknown state.
>      */
>     @IgniteAsyncSupported
>     public void commit() throws IgniteException;
>
> And as we see in trace, exception come 
> from org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit
> So system behaviour meets javadoc but don't meet docs and example on 
> https://apacheignite.readme.io/docs/transactions
>
>
> On Fri, Aug 9, 2019 at 6:12 PM Andrey Davydov 
> <andrey.davydov@gmail.com <mailto:andrey.davydov@gmail.com>> wrote:
>
>     Sorry fo misprint, test does not check that there are no any way
>     to get TimeoutException
>
>     On Fri, Aug 9, 2019 at 5:55 PM Andrey Davydov
>     <andrey.davydov@gmail.com <mailto:andrey.davydov@gmail.com>> wrote:
>
>         It is a little bit difficult to reproduce. We got unhadled
>         exception on pre prod performance test of our system. I will
>         try to reproduce it on weekend.
>
>         You test just check that if you get CacheException then
>         TimeoutException is inside it, but doesn't check that there
>         are no any way to get CacheException. As I check listened in
>         stack trace lines from 2.7.5 sources (loaded from maven), i
>         dont see where TOE shoud be wrapped to CE
>
>         If there is full list of Exceptions when it is valid to retry
>         transaction (Optimistic or Pessimistic). As I found in
>         different pages of docs, now I catch (optimistic tx):
>         TransactionOptimisticException - try to rerun transaction
>         ClusterTopologyException - retryReadyFuture().get() and try to
>         rerun transaction
>         CacheException check if getCause is Timeout then try to rerun
>         or rethrow in other cases
>
>         Thanks.
>
>         On Fri, Aug 9, 2019 at 5:31 PM Andrei Aleksandrov
>         <aealexsandrov@gmail.com <mailto:aealexsandrov@gmail.com>> wrote:
>
>             Hi,
>
>             It looks strange because even Ignite tests expect that
>             TransactionTimeoutException will be wrapped
>             in CacheException. For
>             example IgniteTxConfigCacheSelfTest:
>
>                      try (final Transaction tx =
>             ignite.transactions().txStart()) {
>                          assert tx != null;
>
>                          cache.put("key0", "val0");
>
>                          sleepForTxFailure();
>
>                          cache.put("key", "val");
>
>                          fail("Timeout exception must be thrown");
>                      }
>                      catch (CacheException e) {
>                          assert e.getCause() instanceof
>             TransactionTimeoutException;
>                      }
>
>             So could you please provide the reproducer for your issue?
>             We will check
>             it and create the JIRA for it.
>
>             BR,
>             Andrei
>
>             8/9/2019 5:16 PM, Andrey Davydov пишет:
>             > On ignite 2.7.5 I got TransactionTimeoutException not
>             wrapped
>             > in CacheException. If it is normal behaviour and I
>             should catch
>             > TransactionTimeoutException too. My current logic is to
>             > catch CacheException and check CacheException.getCause()
>             if it
>             > was TransactionTimeoutException.
>             >
>             > Thanks.
>             >
>             > Full statck trace:
>             >
>             > Caused by:
>             org.apache.ignite.transactions.TransactionTimeoutException:
>             > Failed to acquire lock within provided timeout for
>             transaction
>             > [timeout=150, tx=GridDhtTxLocal
>             > [nearNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > nearFutId=74752d17c61-0341ea15-fcbd-48ef-b655-299a6d885196,
>             > nearMiniId=1, nearFinFutId=null, nearFinMiniId=0,
>             > nearXidVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], super=GridDhtTxLocalAdapter
>             > [nearOnOriginatingNode=false, nearNodes=[],
>             > dhtNodes=[18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > 1144f759-6d1f-4aa3-9592-cc0b3481eb15], explicitLock=false,
>             > super=IgniteTxLocalAdapter [completedBase=null,
>             > sndTransformedVals=false, depEnabled=false,
>             txState=IgniteTxStateImpl
>             > [activeCacheIds=[1895344369], recovery=false,
>             mvccEnabled=false,
>             > txMap=[IgniteTxEntry [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             cacheId=1895344369,
>             > txKey=IgniteTxKey [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             cacheId=1895344369],
>             > val=[op=READ, val=null], prevVal=[op=NOOP, val=null],
>             oldVal=[op=NOOP,
>             > val=null], entryProcessorsCol=null, ttl=-1,
>             conflictExpireTime=-1,
>             > conflictVer=null, explicitVer=null, dhtVer=null,
>             filters=[],
>             > filtersPassed=false, filtersSet=false,
>             entry=GridDhtCacheEntry
>             > [rdrs=[], part=127, super=GridDistributedCacheEntry
>             > [super=GridCacheMapEntry [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true], val=null,
>             > ver=GridCacheVersion [topVer=0, order=0, nodeOrder=0],
>             > hash=1903256846, extras=GridCacheMvccEntryExtras
>             [mvcc=GridCacheMvcc
>             > [locs=[GridCacheMvccCandidate
>             > [nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             ver=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             threadId=883,
>             > id=412844, topVer=AffinityTopologyVersion [topVer=3,
>             minorTopVer=1],
>             > reentry=null,
>             otherNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > otherVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], mappedDhtNodes=null, mappedNearNodes=null,
>             > ownerVer=null, serOrder=GridCacheVersion [topVer=176751246,
>             > order=1565274668396, nodeOrder=1],
>             key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             >
>             masks=local=1|owner=1|ready=1|reentry=0|used=0|tx=1|single_implicit=0|dht_local=1|near_local=0|removed=0|read=1,
>
>             > prevVer=GridCacheVersion [topVer=176751246,
>             order=1565274668397,
>             > nodeOrder=2], nextVer=null]], rmts=null]], flags=2]]],
>             prepared=1,
>             > locked=false, nodeId=null, locMapped=false, expiryPlc=null,
>             > transferExpiryPlc=false, flags=0, partUpdateCntr=0,
>             > serReadVer=GridCacheVersion [topVer=0, order=0,
>             nodeOrder=0],
>             > xidVer=null], IgniteTxEntry [key=KeyCacheObjectImpl
>             [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             cacheId=1895344369,
>             > txKey=IgniteTxKey [key=KeyCacheObjectImpl [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             cacheId=1895344369],
>             > val=[op=DELETE, val=null], prevVal=[op=NOOP, val=null],
>             > oldVal=[op=NOOP, val=null], entryProcessorsCol=null,
>             ttl=-1,
>             > conflictExpireTime=-1, conflictVer=null, explicitVer=null,
>             > dhtVer=null, filters=[], filtersPassed=false,
>             filtersSet=false,
>             > entry=GridDhtCacheEntry [rdrs=[], part=121,
>             > super=GridDistributedCacheEntry [super=GridCacheMapEntry
>             > [key=KeyCacheObjectImpl [part=121, val=cancel_queue#FIRSTA,
>             > hasValBytes=true], val=null, ver=GridCacheVersion
>             [topVer=176751246,
>             > order=1565274668382, nodeOrder=2], hash=1903256840,
>             > extras=GridCacheMvccEntryExtras [mvcc=GridCacheMvcc
>             > [locs=[GridCacheMvccCandidate
>             > [nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             ver=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             threadId=883,
>             > id=412843, topVer=AffinityTopologyVersion [topVer=3,
>             minorTopVer=1],
>             > reentry=null,
>             otherNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > otherVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], mappedDhtNodes=null, mappedNearNodes=null,
>             > ownerVer=null, serOrder=GridCacheVersion [topVer=176751246,
>             > order=1565274668396, nodeOrder=1],
>             key=KeyCacheObjectImpl [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             >
>             masks=local=1|owner=1|ready=1|reentry=0|used=0|tx=1|single_implicit=0|dht_local=1|near_local=0|removed=0|read=0,
>
>             > prevVer=null, nextVer=GridCacheVersion [topVer=176751246,
>             > order=1565274668397, nodeOrder=2]]], rmts=null]],
>             flags=3]]],
>             > prepared=1, locked=false, nodeId=null, locMapped=false,
>             > expiryPlc=null, transferExpiryPlc=false, flags=0,
>             partUpdateCntr=0,
>             > serReadVer=GridCacheVersion [topVer=0, order=0,
>             nodeOrder=0],
>             > xidVer=null]]], mvccWaitTxs=null, qryEnlisted=false,
>             > forceSkipCompletedVers=false, super=IgniteTxAdapter
>             > [xidVer=GridCacheVersion [topVer=176751246,
>             order=1565274668397,
>             > nodeOrder=2], writeVer=GridCacheVersion [topVer=176751246,
>             > order=1565274668398, nodeOrder=2], implicit=false,
>             loc=true,
>             > threadId=883, startTime=1565337963940,
>             > nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             startVer=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             endVer=null,
>             > isolation=SERIALIZABLE, concurrency=OPTIMISTIC,
>             timeout=150,
>             > sysInvalidate=false, sys=false, plc=2, commitVer=null,
>             > finalizing=NONE, invalidParts=null, state=PREPARING,
>             timedOut=false,
>             > topVer=AffinityTopologyVersion [topVer=3, minorTopVer=1],
>             > txCounters=null, duration=152ms, onePhaseCommit=false],
>             size=2]]]]
>             > at
>             >
>             org.apache.ignite.internal.util.IgniteUtils$13.apply(IgniteUtils.java:935)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > at
>             >
>             org.apache.ignite.internal.util.IgniteUtils$13.apply(IgniteUtils.java:930)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > at
>             >
>             org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1021)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > at
>             >
>             org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:305)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > ...
>             > Caused by:
>             >
>             org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException:
>
>             > Failed to acquire lock within provided timeout for
>             transaction
>             > [timeout=150, tx=GridDhtTxLocal
>             > [nearNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > nearFutId=74752d17c61-0341ea15-fcbd-48ef-b655-299a6d885196,
>             > nearMiniId=1, nearFinFutId=null, nearFinMiniId=0,
>             > nearXidVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], super=GridDhtTxLocalAdapter
>             > [nearOnOriginatingNode=false, nearNodes=[],
>             > dhtNodes=[18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > 1144f759-6d1f-4aa3-9592-cc0b3481eb15], explicitLock=false,
>             > super=IgniteTxLocalAdapter [completedBase=null,
>             > sndTransformedVals=false, depEnabled=false,
>             txState=IgniteTxStateImpl
>             > [activeCacheIds=[1895344369], recovery=false,
>             mvccEnabled=false,
>             > txMap=[IgniteTxEntry [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             cacheId=1895344369,
>             > txKey=IgniteTxKey [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             cacheId=1895344369],
>             > val=[op=READ, val=null], prevVal=[op=NOOP, val=null],
>             oldVal=[op=NOOP,
>             > val=null], entryProcessorsCol=null, ttl=-1,
>             conflictExpireTime=-1,
>             > conflictVer=null, explicitVer=null, dhtVer=null,
>             filters=[],
>             > filtersPassed=false, filtersSet=false,
>             entry=GridDhtCacheEntry
>             > [rdrs=[], part=127, super=GridDistributedCacheEntry
>             > [super=GridCacheMapEntry [key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true], val=null,
>             > ver=GridCacheVersion [topVer=0, order=0, nodeOrder=0],
>             > hash=1903256846, extras=GridCacheMvccEntryExtras
>             [mvcc=GridCacheMvcc
>             > [locs=[GridCacheMvccCandidate
>             > [nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             ver=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             threadId=883,
>             > id=412844, topVer=AffinityTopologyVersion [topVer=3,
>             minorTopVer=1],
>             > reentry=null,
>             otherNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > otherVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], mappedDhtNodes=null, mappedNearNodes=null,
>             > ownerVer=null, serOrder=GridCacheVersion [topVer=176751246,
>             > order=1565274668396, nodeOrder=1],
>             key=KeyCacheObjectImpl [part=127,
>             > val=cancel_queue#FIRSTG, hasValBytes=true],
>             >
>             masks=local=1|owner=1|ready=1|reentry=0|used=0|tx=1|single_implicit=0|dht_local=1|near_local=0|removed=0|read=1,
>
>             > prevVer=GridCacheVersion [topVer=176751246,
>             order=1565274668397,
>             > nodeOrder=2], nextVer=null]], rmts=null]], flags=2]]],
>             prepared=1,
>             > locked=false, nodeId=null, locMapped=false, expiryPlc=null,
>             > transferExpiryPlc=false, flags=0, partUpdateCntr=0,
>             > serReadVer=GridCacheVersion [topVer=0, order=0,
>             nodeOrder=0],
>             > xidVer=null], IgniteTxEntry [key=KeyCacheObjectImpl
>             [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             cacheId=1895344369,
>             > txKey=IgniteTxKey [key=KeyCacheObjectImpl [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             cacheId=1895344369],
>             > val=[op=DELETE, val=null], prevVal=[op=NOOP, val=null],
>             > oldVal=[op=NOOP, val=null], entryProcessorsCol=null,
>             ttl=-1,
>             > conflictExpireTime=-1, conflictVer=null, explicitVer=null,
>             > dhtVer=null, filters=[], filtersPassed=false,
>             filtersSet=false,
>             > entry=GridDhtCacheEntry [rdrs=[], part=121,
>             > super=GridDistributedCacheEntry [super=GridCacheMapEntry
>             > [key=KeyCacheObjectImpl [part=121, val=cancel_queue#FIRSTA,
>             > hasValBytes=true], val=null, ver=GridCacheVersion
>             [topVer=176751246,
>             > order=1565274668382, nodeOrder=2], hash=1903256840,
>             > extras=GridCacheMvccEntryExtras [mvcc=GridCacheMvcc
>             > [locs=[GridCacheMvccCandidate
>             > [nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             ver=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             threadId=883,
>             > id=412843, topVer=AffinityTopologyVersion [topVer=3,
>             minorTopVer=1],
>             > reentry=null,
>             otherNodeId=18e6b4a9-c39d-463a-9260-b5ed5057a491,
>             > otherVer=GridCacheVersion [topVer=176751246,
>             order=1565274668396,
>             > nodeOrder=1], mappedDhtNodes=null, mappedNearNodes=null,
>             > ownerVer=null, serOrder=GridCacheVersion [topVer=176751246,
>             > order=1565274668396, nodeOrder=1],
>             key=KeyCacheObjectImpl [part=121,
>             > val=cancel_queue#FIRSTA, hasValBytes=true],
>             >
>             masks=local=1|owner=1|ready=1|reentry=0|used=0|tx=1|single_implicit=0|dht_local=1|near_local=0|removed=0|read=0,
>
>             > prevVer=null, nextVer=GridCacheVersion [topVer=176751246,
>             > order=1565274668397, nodeOrder=2]]], rmts=null]],
>             flags=3]]],
>             > prepared=1, locked=false, nodeId=null, locMapped=false,
>             > expiryPlc=null, transferExpiryPlc=false, flags=0,
>             partUpdateCntr=0,
>             > serReadVer=GridCacheVersion [topVer=0, order=0,
>             nodeOrder=0],
>             > xidVer=null]]], mvccWaitTxs=null, qryEnlisted=false,
>             > forceSkipCompletedVers=false, super=IgniteTxAdapter
>             > [xidVer=GridCacheVersion [topVer=176751246,
>             order=1565274668397,
>             > nodeOrder=2], writeVer=GridCacheVersion [topVer=176751246,
>             > order=1565274668398, nodeOrder=2], implicit=false,
>             loc=true,
>             > threadId=883, startTime=1565337963940,
>             > nodeId=73a0c88f-3628-4c12-bd75-d273b77a6752,
>             startVer=GridCacheVersion
>             > [topVer=176751246, order=1565274668397, nodeOrder=2],
>             endVer=null,
>             > isolation=SERIALIZABLE, concurrency=OPTIMISTIC,
>             timeout=150,
>             > sysInvalidate=false, sys=false, plc=2, commitVer=null,
>             > finalizing=NONE, invalidParts=null, state=PREPARING,
>             timedOut=false,
>             > topVer=AffinityTopologyVersion [topVer=3, minorTopVer=1],
>             > txCounters=null, duration=152ms, onePhaseCommit=false],
>             size=2]]]]
>             > at
>             >
>             org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture$PrepareTimeoutObject.onTimeout(GridDhtTxPrepareFuture.java:1983)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > at
>             >
>             org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:234)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > at
>             >
>             org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>
>             > ~[ignite-core-2.7.5.jar:2.7.5]
>             > ... 1 more
>

Mime
View raw message