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

Reply via email to