[jira] [Updated] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests
[ https://issues.apache.org/jira/browse/IGNITE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dmitriy Pavlov updated IGNITE-3464: --- Fix Version/s: (was: 2.6) 2.7 > 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] [Updated] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests
[ https://issues.apache.org/jira/browse/IGNITE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alexey Goncharuk updated IGNITE-3464: - Fix Version/s: (was: 2.5) 2.6 > 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)
***UNCHECKED*** [jira] [Updated] (IGNITE-3464) Possible race between partition exchange and prepare/finish requests
[ https://issues.apache.org/jira/browse/IGNITE-3464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vitaliy Biryukov updated IGNITE-3464: - Fix Version/s: 2.5 > 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.5 > > > 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)