[ https://issues.apache.org/jira/browse/IGNITE-21482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Steshin updated IGNITE-21482: -------------------------------------- Description: GridCacheVersionManager has wierd initialization of its _last_ version: {code:java} public void onLocalJoin(long topVer) { long startTime = cctx.kernalContext().discovery().gridStartTime(); if (startTime != 0) offset = (int)((startTime - TOP_VER_BASE_TIME) / 1000); last = new GridCacheVersion(0, order.get(), 0, dataCenterId); ... } {code} _topVer_, _nodeOrder_ and _offset_ are ignored. While _GridCacheVersion_ says '_topVer Topology version plus number of seconds from the start time of the first grid node._'. If this 'zeroed' value is read before any CRUD, a following comparation of the versions may fail. This happened in [IGNITE-21236|https://issues.apache.org/jira/browse/IGNITE-21236]. We should revise initialization of this value. Assumed fix is: {code:java} last = new GridCacheVersion((int)topVer + offset, order.get(), (int)cctx.localNode().order(), dataCenterId); {code} was: GridCacheVersionManager has wierd initialization of its _last_ version: {code:java} public void onLocalJoin(long topVer) { long startTime = cctx.kernalContext().discovery().gridStartTime(); if (startTime != 0) offset = (int)((startTime - TOP_VER_BASE_TIME) / 1000); last = new GridCacheVersion(0, order.get(), 0, dataCenterId); ... } {code} _topVer_, _nodeOrder_ and _offset_ are ignored. While _GridCacheVersion_ says '_topVer Topology version plus number of seconds from the start time of the first grid node._'. If this value is read before any CRUD, a following version comparation of the versions may fail. This happened in [IGNITE-21236|https://issues.apache.org/jira/browse/IGNITE-21236]. We should revise initialization of this value. Assumed fix is: {code:java} last = new GridCacheVersion((int)topVer + offset, order.get(), (int)cctx.localNode().order(), dataCenterId); {code} > Fix of initialization of the last version in GridCacheVersionManager > -------------------------------------------------------------------- > > Key: IGNITE-21482 > URL: https://issues.apache.org/jira/browse/IGNITE-21482 > Project: Ignite > Issue Type: Improvement > Reporter: Vladimir Steshin > Priority: Minor > > GridCacheVersionManager has wierd initialization of its _last_ version: > {code:java} > public void onLocalJoin(long topVer) { > long startTime = cctx.kernalContext().discovery().gridStartTime(); > if (startTime != 0) > offset = (int)((startTime - TOP_VER_BASE_TIME) / 1000); > last = new GridCacheVersion(0, order.get(), 0, dataCenterId); > ... > } > {code} > _topVer_, _nodeOrder_ and _offset_ are ignored. While _GridCacheVersion_ says > '_topVer Topology version plus number of seconds from the start time of the > first grid node._'. If this 'zeroed' value is read before any CRUD, a > following comparation of the versions may fail. This happened in > [IGNITE-21236|https://issues.apache.org/jira/browse/IGNITE-21236]. > We should revise initialization of this value. Assumed fix is: > {code:java} > last = new GridCacheVersion((int)topVer + offset, order.get(), > (int)cctx.localNode().order(), dataCenterId); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)