Hello Maxim, SingleMessage with exchId=null is sent when a node updates local partitions' state and schedules a background cluster notification. In contrast, when a partition map exchange happends, it is completed with exchId != null.
I need more context regarding how this message interferes with the exchange and what the difference between the two messages is so that during the regular scenario the assertion does not happen. 2018-03-13 20:58 GMT+03:00 Maxim Muzafarov <maxmu...@gmail.com>: > Hi all, > > I'm working on [1] IgniteClientReconnectCacheTest class with frakly > test-case testReconnectCacheDestroyedAndCreated with success rate 32.4%. > > I've leaved comment in JIRA [2] and new test-case with reproducing this > issue. > Basicly, when we receiving GridDhtPartitionsSingleMessage with exchId=null > not > in proper time we've got this Assertion error. Ignite client instance > erases all it's caches after reconnect, so it has no information about > cache named 'static-cache' that persists on server nodes and when he > recieve this SignleMessage after reconnection it will have 'Failed to > reinitialize local partitions (preloading will be stopped)'. > > Should we perform clean-up [3] client caches in case of reconnect client > ignite instance? > Why we should clean clinent caches after node reconnects? Can't catch the > idea of it. > > [1] https://issues.apache.org/jira/browse/IGNITE-7791 > [2] > https://issues.apache.org/jira/browse/IGNITE-7791? > focusedCommentId=16391409&page=com.atlassian.jira. > plugin.system.issuetabpanels:comment-tabpanel#comment-16391409 > [3] > https://github.com/apache/ignite/blob/master/modules/ > core/src/main/java/org/apache/ignite/internal/processors/cache/ > CacheAffinitySharedManager.java#L190 >