You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2017/09/25 12:48:00 UTC
[jira] [Updated] (IGNITE-6174) Exchange may do not wait for tx
completion in case node failures
[ https://issues.apache.org/jira/browse/IGNITE-6174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Semen Boikov updated IGNITE-6174:
---------------------------------
Fix Version/s: (was: 2.3)
> Exchange may do not wait for tx completion in case node failures
> ----------------------------------------------------------------
>
> Key: IGNITE-6174
> URL: https://issues.apache.org/jira/browse/IGNITE-6174
> Project: Ignite
> Issue Type: Bug
> Reporter: Semen Boikov
> Assignee: Semen Boikov
>
> Very good reproduces in IgniteCachePartitionedNearDisabledPrimaryNodeFailureRecoveryTest.testOptimisticPrimaryAndOriginatingNodeFailureRecovery1.
> Approximate scenario:
> - there are several nodes in topology
> - node A starts tx prepare
> - one node fails, exchange is started
> - all servers except node A finishes 'waitPartitionRelease()' and coordinator waits for node A
> - node A also fails, but it was able to send prepare request and it will be processed
> - since node A failed others nodes can finish exchange, without waiting for tx completion
> Note: to increase possibility change nodes start order in IgniteCacheAbstractTest:
> {noformat}
> protected void startGrids() throws Exception {
> int cnt = gridCount();
> assert cnt >= 1 : "At least one grid must be started";
> //startGridsMultiThreaded(cnt);
> startGrid(0);
> startGrid(1);
> startGrid(3);
> startGrid(2);
> awaitPartitionMapExchange();
> }
> {noformat}
> It seems one possible solution: exchange should wait when all messages from failed node are processed.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)