[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16720252#comment-16720252
 ] 

ASF GitHub Bot commented on IGNITE-10514:
-

Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5558


> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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()) {
> transactionalCache.put(...);
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
> // There is a chance that the topFut is not done yet!
> assert topFut.isDone() : topFut;
> Throwable err = topFut.validateCache(ctx, req.recovery(), false, 
> null, null);
> ...
> }
> }{code}
> That is the root cause of the {{AssertionError}} mentioned above.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-12 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16719210#comment-16719210
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2529789buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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()) {
> transactionalCache.put(...);
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
> // There is a chance that the topFut is not done yet!
> assert topFut.isDone() : topFut;
> Throwable err = topFut.validateCache(ctx, req.recovery(), false, 
> null, null);
> ...
> }
> }{code}
> That is the root cause of the {{AssertionError}} mentioned above.



--
This 

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-12 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16719021#comment-16719021
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Cache 6{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=2529759]]
* IgniteCacheTestSuite6: TxRollbackAsyncTest.testMixedAsyncRollbackTypes - 0,0% 
fails in last 395 master runs.

{color:#d04437}Cache 7{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=2529760]]
* IgniteCacheTestSuite7: 
TxRollbackAsyncWithPersistenceTest.testSynchronousRollback - 0,0% fails in last 
368 master runs.

{color:#d04437}Web Sessions{color} [[tests 0 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=2529723]]
* WebSessionV1SelfTest.testClientReconnectRequest (last started)

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2529789buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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()) {
> transactionalCache.put(...);
> 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 
> 

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-11 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16718182#comment-16718182
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Hibernate 1{color} [[tests 
12|https://ci.ignite.apache.org/viewLog.html?buildId=2523866]]
* IgniteHibernateTestSuite: 
HibernateL2CacheTransactionalSelfTest.testEntityCache - 0,0% fails in last 367 
master runs.
* IgniteHibernateTestSuite: 
HibernateL2CacheTransactionalUseSyncSelfTest.testQueryCache - 0,0% fails in 
last 367 master runs.
* IgniteHibernateTestSuite: 
HibernateL2CacheTransactionalUseSyncSelfTest.testTwoEntitiesSameCache - 0,0% 
fails in last 367 master runs.

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2523950buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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()) {
> transactionalCache.put(...);
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> 

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-10 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16714516#comment-16714516
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Cache 6{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=2506450]]
* IgniteCacheTestSuite6: TxStateChangeEventTest.testRemote - 0,0% fails in last 
100 master runs.

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2506480buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
> // There is a chance that the topFut is not done yet!
> assert topFut.isDone() : topFut;
> Throwable err = 

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-10 Thread Vyacheslav Koptilin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16714527#comment-16714527
 ] 

Vyacheslav Koptilin commented on IGNITE-10514:
--

It seems that {{TxStateChangeEventTest.testRemote}} is a known issue 
https://issues.apache.org/jira/browse/IGNITE-9838

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
> // There is a chance that the topFut is not done yet!
> assert topFut.isDone() : topFut;
> Throwable err = topFut.validateCache(ctx, req.recovery(), false, 
> null, null);
> ...
> }
> }{code}
> That is the root cause of the {{AssertionError}} mentioned above.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-04 Thread Vyacheslav Koptilin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16708493#comment-16708493
 ] 

Vyacheslav Koptilin commented on IGNITE-10514:
--

fixed tests related to merged exchanges.

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
> // There is a chance that the topFut is not done yet!
> assert topFut.isDone() : topFut;
> Throwable err = topFut.validateCache(ctx, req.recovery(), false, 
> null, null);
> ...
> }
> }{code}
> That is the root cause of the {{AssertionError}} mentioned above.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-04 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16708495#comment-16708495
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Platform .NET (Long Running){color} [[tests 2 TIMEOUT 
|https://ci.ignite.apache.org/viewLog.html?buildId=2459039]]
* exe: CacheAbstractTest.TestCacheConfigurationExpiryPolicy - 10,0% fails in 
last 100 master runs.
* exe: PersistentStoreTestObsolete.TestCacheDataSurvivesNodeRestart - 7,0% 
fails in last 100 master runs.

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2459047buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: MakeTeamcityGreenAgain
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> {code:java|title=GridDhtAtomicCache.java}
> private void updateAllAsyncInternal0() {
> ...
> if (validateCache) {
> GridDhtTopologyFuture topFut = top.topologyVersionFuture();
>

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-03 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16708086#comment-16708086
 ] 

Ignite TC Bot commented on IGNITE-10514:


{panel:title=-- Run :: All: Possible 
Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}JDBC Driver{color} [[tests 0 TIMEOUT , Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=2456507]]

{color:#d04437}Basic 1{color} [[tests 
1|https://ci.ignite.apache.org/viewLog.html?buildId=2454441]]
* IgniteBasicTestSuite: GridServiceReassignmentSelfTest.testNodeSingleton - 
1,0% fails in last 100 master runs.

{color:#d04437}Cache (Failover SSL){color} [[tests 
2|https://ci.ignite.apache.org/viewLog.html?buildId=2456539]]
* IgniteCacheFailoverTestSuiteSsl: IgniteCacheSslStartStopSelfTest.testInvoke - 
0,0% fails in last 100 master runs.

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=2454496buildTypeId=IgniteTests24Java8_RunAll]

> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> 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 topology version, triggered by {{CacheAffinityMessage}}.
> 

[jira] [Commented] (IGNITE-10514) Cache validation on the primary node may result in AssertionError

2018-12-03 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16707596#comment-16707596
 ] 

ASF GitHub Bot commented on IGNITE-10514:
-

GitHub user sk0x50 opened a pull request:

https://github.com/apache/ignite/pull/5558

IGNITE-10514: Cache validation on the primary node may result in 
AssertionError



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10514

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5558.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5558


commit c15dac80bdad2e7001b74897ba87093203eb5047
Author: Slava Koptilin 
Date:   2018-12-03T17:50:42Z

IGNITE-10514 Cache validation has to use top ver from the update request in 
case of topology version was locked on near node

commit 0a2a63962907e38ff13b38bb383a1aaa0e92e591
Author: Slava Koptilin 
Date:   2018-12-03T17:58:03Z

IGNITE-10514 fixed race between GridDhtTopologyFuture.exchangeDone() and 
GridDhtTopologyFuture.validateCache()




> 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
>  Components: cache
>Affects Versions: 2.8
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
> 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 
>