[
https://issues.apache.org/jira/browse/IGNITE-9558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16684748#comment-16684748
]
Alexey Goncharuk commented on IGNITE-9558:
------------------------------------------
[~ilantukh], unfortunately, I still see the same error here:
{code}
[01:25:50]W: [org.apache.ignite:ignite-core]
java.lang.AssertionError: Invalid cached affinity:
[cache=HistoryAffinityAssignment [topVer=AffinityTopologyVersion [topVer=252,
minorTopVer=0], mvccCrd=MvccCoordinator
[nodeId=53e3df5b-0e09-4825-9aa8-da015c500000, crdVer=1542061436092,
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=0]]],
topVer=AffinityTopologyVersion [topVer=9, minorTopVer=0],
lastAffChangedTopVer=AffinityTopologyVersion [topVer=9, minorTopVer=0]]
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:737)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:695)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionTopologyImpl.nodes(GridDhtPartitionTopologyImpl.java:1113)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheContext.dhtMap(GridCacheContext.java:1573)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:863)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onOwnerChanged(GridDhtLockFuture.java:707)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:228)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:82)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:165)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:4838)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.readyLock(GridDistributedCacheEntry.java:512)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.readyLocks(GridDhtLockFuture.java:615)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:819)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsyncInternal(GridDhtTransactionalCacheAdapter.java:1024)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.obtainLockAsync(GridDhtTxLocalAdapter.java:720)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.lockAllAsync(GridDhtTxLocalAdapter.java:665)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.lockAllAsync(GridDhtTransactionalCacheAdapter.java:1223)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest0(GridDhtTransactionalCacheAdapter.java:820)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.processNearLockRequest(GridDhtTransactionalCacheAdapter.java:798)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter.access$000(GridDhtTransactionalCacheAdapter.java:112)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter$3.apply(GridDhtTransactionalCacheAdapter.java:158)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter$3.apply(GridDhtTransactionalCacheAdapter.java:156)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1059)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:584)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:383)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:309)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:100)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:299)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1568)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1196)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
[01:25:50]W: [org.apache.ignite:ignite-core] at
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1092)
[01:25:50]W: [org.apache.ignite:ignite-core] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[01:25:50]W: [org.apache.ignite:ignite-core] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[01:25:50]W: [org.apache.ignite:ignite-core] at
java.lang.Thread.run(Thread.java:748)
{code}
https://ci.ignite.apache.org/viewLog.html?buildId=2303998&buildTypeId=IgniteTests24Java8_Basic1&tab=buildResultsDiv
> Avoid changing AffinityTopologyVersion on client connect when possible
> ----------------------------------------------------------------------
>
> Key: IGNITE-9558
> URL: https://issues.apache.org/jira/browse/IGNITE-9558
> Project: Ignite
> Issue Type: Improvement
> Affects Versions: 2.0
> Reporter: Alexey Goncharuk
> Assignee: Ilya Lantukh
> Priority: Major
> Fix For: 2.8
>
>
> Currently a client join event changes discovery topology version which, in
> turn, changes AffinityTopologyVersion.
> When a client maps transaction on new AffinityTopologyVersion, corresponding
> message is not processed on remote node until remote node receives the
> corresponding discovery event. If discovery event delivery is delayed for
> some reason, this will result in transaction stalls on client joins.
> Since the client node does not change partition affinity, we can safely map
> transactions on the previous topology version and do not change the affinity
> topology version at all.
> Some cases need special care and probably do not qualify for this
> optimization, such as when client has near cache or client hosts partition
> for REPLICATED cache.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)