[ https://issues.apache.org/jira/browse/IGNITE-20816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17788363#comment-17788363 ]
Anton Vinogradov commented on IGNITE-20816: ------------------------------------------- Cherry-picked to the 2.16 as well. > in-memory server node is crashed by TcpIgniteClient.putAllConflict() if cache > objects transformation applied > ------------------------------------------------------------------------------------------------------------ > > Key: IGNITE-20816 > URL: https://issues.apache.org/jira/browse/IGNITE-20816 > Project: Ignite > Issue Type: Task > Reporter: Sergey Korotkov > Assignee: Anton Vinogradov > Priority: Major > Labels: iep-97, ise > Fix For: 2.16 > > Time Spent: 20m > Remaining Estimate: 0h > > The in-memory server node crashes with the below exception if > TcpIgniteClient.putAllConflict() if cache objects transformation is applied. > {noformat} > [2023-11-09T09:34:30,401][ERROR][client-connector-#68%target%][] Critical > system error detected. Will be handled accordingly to configured handler > [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, > super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet > [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], > failureCtx=FailureContext [type=CRITICAL_ERROR, err=class > o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is > corrupted [groupId=-1407396309, pageIds=[844420635164695], msg=Runtime > failure on search row: SearchRow [key=KeyCacheObjectImpl [part=10, val=52234, > hasValBytes=true], hash=52234, cacheId=0]]]] > org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: > B+Tree is corrupted [groupId=-1407396309, pageIds=[844420635164695], > msg=Runtime failure on search row: SearchRow [key=KeyCacheObjectImpl > [part=10, val=52234, hasValBytes=true], hash=52234, cacheId=0]] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:6534) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:2215) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1692) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1675) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:424) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:1903) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2536) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update(GridDhtAtomicCache.java:1996) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1815) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1688) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:300) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.map(GridNearAtomicUpdateFuture.java:791) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapOnTopology(GridNearAtomicUpdateFuture.java:645) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$21.apply(GridDhtAtomicCache.java:1080) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$21.apply(GridDhtAtomicCache.java:1078) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.asyncOp(GridDhtAtomicCache.java:752) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAll0(GridDhtAtomicCache.java:1078) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.putAllConflictAsync(GridDhtAtomicCache.java:679) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.putAllConflict(GridDhtAtomicCache.java:670) > [classes/:?] > at > org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.putAllConflict(GridCacheProxyImpl.java:536) > [classes/:?] > at > org.apache.ignite.internal.processors.platform.client.cache.ClientCachePutAllConflictRequest.process(ClientCachePutAllConflictRequest.java:81) > [classes/:?] > at > org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:101) > [classes/:?] > at > org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:211) > [classes/:?] > at > org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57) > [classes/:?] > at > org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) > [classes/:?] > at > org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) > [classes/:?] > at > org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) > [classes/:?] > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) > [classes/:?] > at > org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) > [classes/:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > [?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > [?:?] > at java.lang.Thread.run(Thread.java:834) [?:?] > Caused by: java.lang.NullPointerException > at > org.apache.ignite.internal.processors.cache.CacheObjectAdapter.valueBytesFromValue(CacheObjectAdapter.java:64) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.CacheObjectImpl.valueBytes(CacheObjectImpl.java:108) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.CacheObjectAdapter.valueBytesLength(CacheObjectAdapter.java:152) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.size(CacheDataRowAdapter.java:921) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.canUpdateOldRow(IgniteCacheOffheapManagerImpl.java:1651) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.createRow(IgniteCacheOffheapManagerImpl.java:1734) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.update(GridCacheMapEntry.java:6021) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:5752) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:5437) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.invokeClosure(BPlusTree.java:4320) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.access$5700(BPlusTree.java:4214) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invokeDown(BPlusTree.java:2306) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:2182) > [classes/:?] > ... 31 more > {noformat} > -- This message was sent by Atlassian Jira (v8.20.10#820010)