Vyacheslav Koptilin created IGNITE-10514:
-------------------------------------------- Summary: Cache validation on the primary node may result in AssertionError Key: IGNITE-10514 URL: https://issues.apache.org/jira/browse/IGNITE-10514 Project: Ignite Issue Type: Bug Affects Versions: 2.8 Reporter: Vyacheslav Koptilin Assignee: Vyacheslav Koptilin Fix For: 2.8 Cache validation on the primary node, that was introduced by IGNITE-10413, may lead to the following AssertionError. {code:java} java.lang.AssertionError: GridDhtPartitionsExchangeFuture [firstDiscoEvt=DiscoveryCustomEvent [customMsg=CacheAffinityChangeMessage [...]] at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1788) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1671) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:3184) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$400(GridDhtAtomicCache.java:138) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:273) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:268) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1059) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:584) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:383) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:309) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:100) at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:299) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1568) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1196) at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127) at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1092) at org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:505) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.lang.Thread.run(Thread.java:748) {code} Let's consider the following scenario: * Start one node and upload data. * Start a new node (note that this step triggers rebalancing). * Start explicit transaction and try to update atomic cache (it is assumed that atomic operation are allowed for use inside transactions, see Ignite system property DFLT_ALLOW_ATOMIC_OPS_IN_TX) {code:java} IgniteTransactions txs = ignite.transactions(); try (Transaction tx = txs.txStart()) { atomicCache.put(); tx.commit(); } {code} Let's assume that the transaction mapped on the topology version that is related to {{NODE_JOIN}} event, on the other hand, the corresponding request {{GridNearAtomicAbstractUpdateRequest}} can be validated on the primary node using the next top version, triggered by \{{CacheAffinityMessage}}. That is the root cause of the {{AssertionError}} mentioned above. -- This message was sent by Atlassian JIRA (v7.6.3#76005) |
Free forum by Nabble | Edit this page |