Fixed incorrect row size calculation, lead to tree corruption.
@@ -1614,6 +1614,10 @@ public class IgniteCacheOffheapManagerImpl implements IgniteCacheOffheapManager
int oldLen = oldRow.size();
+ // Use grp.sharedGroup() flag since it is possible cacheId is not yet set here.
+ if (!grp.storeCacheIdInDataPage() && grp.sharedGroup() && oldRow.cacheId() != CU.UNDEFINED_CACHE_ID)
+ oldLen -= 4;
+
if (oldLen > updateValSizeThreshold)
return false;
