[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

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


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

ASF GitHub Bot commented on IGNITE-3464:


Github user BiryukovVA closed the pull request at:

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


> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>Priority: Major
> Fix For: 2.7
>
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



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


[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

2018-04-09 Thread Pavel Kovalenko (JIRA)

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

Pavel Kovalenko commented on IGNITE-3464:
-

[~avinogradov] Yes, it should be closed as duplicate.

> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>Priority: Major
> Fix For: 2.6
>
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



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


[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

2018-04-09 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov commented on IGNITE-3464:
--

[~Jokser]
We have to close this as duplicate?

> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>Priority: Major
> Fix For: 2.6
>
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



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


[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

2018-04-09 Thread Pavel Kovalenko (JIRA)

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

Pavel Kovalenko commented on IGNITE-3464:
-

[~agoncharuk] This is one of the corner cases that generally solved in 
IGNITE-7871. In general case node A can be client, while waitPartitionRelease 
is not invoked on such nodes. Reproducer presented in PR passes in 
corresponding branch.
[~VitaliyB] Thank you for your work! I will add your reproducer to IGNITE-7871 
ticket.

> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>Priority: Major
> Fix For: 2.6
>
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



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


[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

2018-04-09 Thread Alexey Goncharuk (JIRA)

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

Alexey Goncharuk commented on IGNITE-3464:
--

[~Jokser] Can you please take a look at the provided PR, given your expertise 
in exchange counters validation? 

> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>Priority: Major
> Fix For: 2.6
>
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



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


[jira] [Commented] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests

2017-12-18 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-3464:


GitHub user BiryukovVA opened a pull request:

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

IGNITE-3464

Fixed bug - race between partition exchange and prepare/finish requests.

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

$ git pull https://github.com/BiryukovVA/ignite IGNITE-3464

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

https://github.com/apache/ignite/pull/3250.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 #3250


commit a370e2f30008b244f26fcdda0eb0a30e8132f04a
Author: Vitaliy Biryukov 
Date:   2017-12-18T23:15:24Z

IGNITE-3464: Fixed bug - race between partition exchange and prepare/finish 
requests.




> Possible race between partition exchange and prepare/finish requests
> 
>
> Key: IGNITE-3464
> URL: https://issues.apache.org/jira/browse/IGNITE-3464
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: ignite-1.4
>Reporter: Alexey Goncharuk
>Assignee: Vitaliy Biryukov
>
> Consider the following scenario:
> Two nodes A (coordinator), B. Node C is joining the grid. Current topology 
> version is 2.
>  - Node A starts a transaction on version 2 and sends a prepare request to 
> node B
>  - Discovery event happens on node A. Exchange future is created, captures 
> the transaction and waits for this transaction to finish.
>  - Discovery event happens on node B. Exchange future is created, but since 
> there is no transaction on this node (the request has not been processed 
> yet), partition release future is completed and exchange waits for an ACK 
> from coordinator.
>  - Prepare request is processed on node B
>  - Node A commits the transaction locally, partition release future is 
> completed. Both finish request and exchange message are sent to the node B.
>  - Node B processes the exchange message first and completes exchange.
>  - Node C starts rebalancing from node B and acquires stale value of the key 
> which was supposed to be updated in the transaction.
>  - Node B processes finish request and commits the transaction.
> As a result, node B and C have different values stored in the cache.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)