You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dg...@apache.org on 2019/08/12 11:53:59 UTC
[ignite] 02/02: IGNITE-12060 Fixed incorrect row size calculation,
lead to tree corruption.
This is an automated email from the ASF dual-hosted git repository.
dgovorukhin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
commit d54a0bae02b85591a8a4ced456234b28032b5c77
Author: Dmitriy Govorukhin <dm...@gmail.com>
AuthorDate: Mon Aug 12 14:53:26 2019 +0300
IGNITE-12060 Fixed incorrect row size calculation, lead to tree corruption.
---
.../internal/processors/cache/IgniteCacheOffheapManagerImpl.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index ac08189..57cca44 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -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;