Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-12112

H2TreeIndex should throw CorruptTreeException with cacheId, cacheName and indexName

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.8
    • sql
    • None

    Description

      At the moment we can't define problem cache, If we have many caches in one cache group and CorruptTreeException was thrown CorruptTreeException.
      For example:

      org.h2.message.DbException: General error: "class org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: Runtime failure on row: Row@346ba4aa[ key: 29003, val: com.sbt.acquiring.processing.entities.dictionaries.TurnoverRange_DPL_PROXY [idHash=492721050, hash=-616731792, valueStart=20000001, isImmutable=false, lastChangeDate=1560917668719, name=Ñâûøå 200000, valueEnd=null, changeState=null, id=29003, pkey=7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976, ownerId=acquiring-processing-replication, base=true], ver: GridCacheVersion [topVer=172396060, order=1560917613306, nodeOrder=2] ][ Ñâûøå 200000, null, 20000001, TRUE, null, 29003, 7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976 ]" [50000-195]
              at org.h2.message.DbException.get(DbException.java:168)
              at org.h2.message.DbException.convert(DbException.java:295)
              at org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:251)
              at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.addToIndex(GridH2Table.java:548)
              at org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.update(GridH2Table.java:480)
              at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.store(IgniteH2Indexing.java:709)
              at org.apache.ignite.internal.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1863)
              at org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:403)
              at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1402)
              at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1263)
              at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.invoke(GridCacheOffheapManager.java:1625)
              at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:358)
              at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3629)
              at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.initialValue(GridCacheMapEntry.java:2793)
              at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander.preloadEntry(GridDhtPartitionDemander.java:902)
              at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander.handleSupplyMessage(GridDhtPartitionDemander.java:772)
              at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader.handleSupplyMessage(GridDhtPreloader.java:344)
              at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$5.apply(GridCachePartitionExchangeManager.java:418)
              at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$5.apply(GridCachePartitionExchangeManager.java:408)
              at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1061)
              at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:586)
              at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:101)
              at org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1624)
              at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
              at org.apache.ignite.internal.managers.communication.GridIoManager.access$4100(GridIoManager.java:125)
              at org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2752)
              at org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1516)
              at org.apache.ignite.internal.managers.communication.GridIoManager.access$4400(GridIoManager.java:125)
              at org.apache.ignite.internal.managers.communication.GridIoManager$10.run(GridIoManager.java:1485)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      Caused by: org.h2.jdbc.JdbcSQLException: General error: "class org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: Runtime failure on row: Row@346ba4aa[ key: 29003, val: com.sbt.acquiring.processing.entities.dictionaries.TurnoverRange_DPL_PROXY [idHash=492721050, hash=-616731792, valueStart=20000001, isImmutable=false, lastChangeDate=1560917668719, name=Ñâûøå 200000, valueEnd=null, changeState=null, id=29003, pkey=7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976, ownerId=acquiring-processing-replication, base=true], ver: GridCacheVersion [topVer=172396060, order=1560917613306, nodeOrder=2] ][ Ñâûøå 200000, null, 20000001, TRUE, null, 29003, 7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976 ]" [50000-195]
              at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
              ... 32 common frames omitted
      Caused by: org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: Runtime failure on row: Row@346ba4aa[ key: 29003, val: com.sbt.acquiring.processing.entities.dictionaries.TurnoverRange_DPL_PROXY [idHash=492721050, hash=-616731792, valueStart=20000001, isImmutable=false, lastChangeDate=1560917668719, name=Ñâûøå 200000, valueEnd=null, changeState=null, id=29003, pkey=7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976, ownerId=acquiring-processing-replication, base=true], ver: GridCacheVersion [topVer=172396060, order=1560917613306, nodeOrder=2] ][ Ñâûøå 200000, null, 20000001, TRUE, null, 29003, 7c0d0d59-f33e-41d7-a5c9-4d8c7e74b976 ]
              at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2133)
              at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putx(BPlusTree.java:2080)
              at org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:248)
              ... 29 common frames omitted
      Caused by: org.apache.ignite.binary.BinaryObjectException: Failed to get field because type ID of passed object differs from type ID this BinaryField belongs to [expected=-1254233435, actual=-1230512172]
              at org.apache.ignite.internal.binary.BinaryFieldImpl.fieldOrder(BinaryFieldImpl.java:287)
              at org.apache.ignite.internal.binary.BinaryFieldImpl.value(BinaryFieldImpl.java:109)
              at org.apache.ignite.internal.processors.query.property.QueryBinaryProperty.fieldValue(QueryBinaryProperty.java:249)
      

      We should have information about operated cache (cacheId, cacheName) and indexName if it possible.

      Attachments

        Issue Links

          Activity

            People

              Denis Chudov Denis Chudov
              Denis Chudov Denis Chudov
              Andrey Mashenkov Andrey Mashenkov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m