Игнорировать сбой транзакции, который невозможно восстановить с сохранением - PullRequest
0 голосов
/ 21 января 2019

Я сталкиваюсь с ситуациями с Ignite кешем с включенным постоянством, когда кеш больше не может использоваться после ошибки транзакции, которая кажется.Теперь, всякий раз, когда я пишу в кеш, происходит сбой ниже.

Что именно говорит мне эта ошибка?Кроме того, как я могу восстановить кэш для правильной работы сейчас?

Любая помощь приветствуется.

javax.cache.CacheException: class org.apache.ignite.transactions.TransactionHeuristicException: Failed to locally write to cache (all transaction entries will be invalidated, however there was a window when entries for this transaction were visible to others): GridDhtTxLocal [nearNodeId=20a50b0c-5b80-4f9c-8be9-9e93260decfc, nearFutId=de1ac717861-3e67525b-9f11-4865-9603-f78250c0a5a8, nearMiniId=1, nearFinFutId=null, nearFinMiniId=0, nearXidVer=GridCacheVersion [topVer=159572191, order=1548092220488, nodeOrder=3], super=GridDhtTxLocalAdapter [nearOnOriginatingNode=false, nearNodes=[], dhtNodes=[], explicitLock=false, super=IgniteTxLocalAdapter [completedBase=null, sndTransformedVals=false, depEnabled=false, txState=IgniteTxImplicitSingleStateImpl [init=true, recovery=false], super=IgniteTxAdapter [xidVer=GridCacheVersion [topVer=159572191, order=1548092220489, nodeOrder=1], writeVer=GridCacheVersion [topVer=159572191, order=1548092220491, nodeOrder=1], implicit=true, loc=true, threadId=86, startTime=1548092238406, nodeId=de15c5e1-f745-4fc0-a215-4ad455f16824, startVer=GridCacheVersion [topVer=159572191, order=1548092220489, nodeOrder=1], endVer=null, isolation=READ_COMMITTED, concurrency=OPTIMISTIC, timeout=0, sysInvalidate=false, sys=false, plc=2, commitVer=null, finalizing=USER_FINISH, invalidParts=null, state=COMMITTING, timedOut=false, topVer=AffinityTopologyVersion [topVer=3, minorTopVer=0], duration=11ms, onePhaseCommit=true], size=1]]]
    at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1302) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:1734) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.putIfAbsent(IgniteCacheProxyImpl.java:1171) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.putIfAbsent(GatewayProtectedCacheProxy.java:860) ~[ignite-core-2.5.0.jar:2.5.0]
    at de.kramersoft.mediafan.net.ignite.cache.IgniteCachedMediaSetStatusHistory.put(IgniteCachedMediaSetStatusHistory.java:43) ~[bin/:?]
    at de.kramersoft.mediafan.net.ignite.cache.IgniteCachedMediaSetStatusHistory.put(IgniteCachedMediaSetStatusHistory.java:57) ~[bin/:?]
    at de.kramersoft.mediafan.net.ignite.tasklist.TaskManager.updateTaskEntry(TaskManager.java:573) ~[bin/:?]
    at de.kramersoft.mediafan.net.ignite.tasklist.TaskManager.addTask(TaskManager.java:89) ~[bin/:?]
    at de.kramersoft.mediafan.net.NetMasterIgnite.createTask(NetMasterIgnite.java:1412) ~[bin/:?]
    at de.kramersoft.mediafan.net.NetMasterIgnite.createNewMediaSet(NetMasterIgnite.java:1543) [bin/:?]
    at de.kramersoft.mediafan.plugins.builtin.MediaProducerSingleFile.produceMedia(MediaProducerSingleFile.java:142) [bin/:?]
    at de.kramersoft.mediafan.net.ignite.jobqueue.JobManager.startMediaFanJob(JobManager.java:323) [bin/:?]
    at de.kramersoft.mediafan.net.ignite.jobqueue.JobManager.startNextJobOrWait(JobManager.java:254) [bin/:?]
    at de.kramersoft.mediafan.net.ignite.jobqueue.JobManager.run(JobManager.java:559) [bin/:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: org.apache.ignite.transactions.TransactionHeuristicException: Failed to locally write to cache (all transaction entries will be invalidated, however there was a window when entries for this transaction were visible to others): GridDhtTxLocal [nearNodeId=20a50b0c-5b80-4f9c-8be9-9e93260decfc, nearFutId=de1ac717861-3e67525b-9f11-4865-9603-f78250c0a5a8, nearMiniId=1, nearFinFutId=null, nearFinMiniId=0, nearXidVer=GridCacheVersion [topVer=159572191, order=1548092220488, nodeOrder=3], super=GridDhtTxLocalAdapter [nearOnOriginatingNode=false, nearNodes=[], dhtNodes=[], explicitLock=false, super=IgniteTxLocalAdapter [completedBase=null, sndTransformedVals=false, depEnabled=false, txState=IgniteTxImplicitSingleStateImpl [init=true, recovery=false], super=IgniteTxAdapter [xidVer=GridCacheVersion [topVer=159572191, order=1548092220489, nodeOrder=1], writeVer=GridCacheVersion [topVer=159572191, order=1548092220491, nodeOrder=1], implicit=true, loc=true, threadId=86, startTime=1548092238406, nodeId=de15c5e1-f745-4fc0-a215-4ad455f16824, startVer=GridCacheVersion [topVer=159572191, order=1548092220489, nodeOrder=1], endVer=null, isolation=READ_COMMITTED, concurrency=OPTIMISTIC, timeout=0, sysInvalidate=false, sys=false, plc=2, commitVer=null, finalizing=USER_FINISH, invalidParts=null, state=COMMITTING, timedOut=false, topVer=AffinityTopologyVersion [topVer=3, minorTopVer=0], duration=11ms, onePhaseCommit=true], size=1]]]
    at org.apache.ignite.internal.util.IgniteUtils$12.apply(IgniteUtils.java:890) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.IgniteUtils$12.apply(IgniteUtils.java:888) ~[ignite-core-2.5.0.jar:2.5.0]
    ... 15 more
Caused by: org.apache.ignite.IgniteCheckedException: Runtime failure on row: Row@76348cbc[ key: 43e7fea1-edbe-41a3-9942-27d782112c17, val: MediaFan_MediaSetStatusHistory [idHash=1108159155, hash=1617878958, mediaSetId=7e1a83f9-f6fb-48cf-8527-629fce810bab, id=43e7fea1-edbe-41a3-9942-27d782112c17, status=2, changed=Mon Jan 21 18:37:18 CET 2019], ver: GridCacheVersion [topVer=159572191, order=1548092220491, nodeOrder=1] ][ 43e7fea1-edbe-41a3-9942-27d782112c17, 7e1a83f9-f6fb-48cf-8527-629fce810bab, 2, 2019-01-21 18:37:18.386 ]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2116) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putx(BPlusTree.java:2066) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:247) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.addToIndex(GridH2Table.java:548) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.update(GridH2Table.java:480) ~[ignite-indexing-2.5.0.jar:2.5.0]
        ......
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:157) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest(IgniteTxHandler.java:135) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$000(IgniteTxHandler.java:97) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:177) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:175) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1054) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:511) ~[ignite-core-2.5.0.jar:2.5.0]
    ... 1 more
Caused by: org.apache.ignite.IgniteCheckedException: Maximum of retries 1000 reached.
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Get.checkLockRetry(BPlusTree.java:2565) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2330) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2348) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2348) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2086) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putx(BPlusTree.java:2066) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:247) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.addToIndex(GridH2Table.java:548) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.update(GridH2Table.java:480) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.store(IgniteH2Indexing.java:659) ~[ignite-indexing-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1866) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:403) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1393) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1257) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.invoke(GridCacheOffheapManager.java:1529) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:352) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3602) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3578) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerSet(GridCacheMapEntry.java:1040) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:652) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.localFinish(GridDhtTxLocalAdapter.java:795) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.localFinish(GridDhtTxLocal.java:583) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.finishTx(GridDhtTxLocal.java:464) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.commitDhtLocalAsync(GridDhtTxLocal.java:517) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.commitAsync(GridDhtTxLocal.java:526) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onDone(GridDhtTxPrepareFuture.java:735) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onDone(GridDhtTxPrepareFuture.java:104) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.future.GridCompoundFuture.markInitialized(GridCompoundFuture.java:276) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1254) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:671) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1048) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:397) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareNearTx(IgniteTxHandler.java:516) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest0(IgniteTxHandler.java:157) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareRequest(IgniteTxHandler.java:135) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$000(IgniteTxHandler.java:97) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:177) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$1.apply(IgniteTxHandler.java:175) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1054) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) ~[ignite-core-2.5.0.jar:2.5.0]
    at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:511) ~[ignite-core-2.5.0.jar:2.5.0]
    ... 1 more

1 Ответ

0 голосов
/ 22 января 2019

Похоже, что индекс H2 поврежден.Чтобы восстановить узел, вы можете удалить все файлы index.bin из подкаталогов постоянства.Индекс будет перестроен при следующем перезапуске.

...