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

ASF GitHub Bot commented on IGNITE-10078:
-----------------------------------------

GitHub user ascherbakoff opened a pull request:

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

    IGNITE-10078 Node failure during concurrent partition updates may cause 
partition desync between primary and backup.

    

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

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

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

    https://github.com/apache/ignite/pull/5765.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 #5765
    
----
commit 253df1059b0ad0f003a711e63007df7b2e1b77c0
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-10-31T15:38:07Z

    IGNITE-10078 wip.

commit beb579c83782ef4d2be91a29c43b99410e4f8d6d
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-01T09:51:24Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078

commit a43e5876cb81bb00fdbccc004d28e9c4ceda475a
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-06T07:31:38Z

    IGNITE-10078 wip.

commit defbcc167aaf358991c2874b2b0d600b6248f921
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-12T19:41:57Z

    IGNITE-10078 wip.

commit 64d7e2d2a235fb822b68ca21f02d85f43f88b019
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-12T19:42:43Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078

commit 2317758268879c647d80367f44c121645713de78
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-14T14:45:49Z

    IGNITE-10078 wip.

commit 63d7ab771d664eafc1e5f18f7a2f51500113316b
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-16T15:51:59Z

    IGNITE-10078 wip.

commit e210e1cb26e774625252b1a2f11d295f80f48351
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-18T14:06:45Z

    IGNITE-10078 wip.

commit 2efba0a10b64490ac435e0157a5eeca8c2712ecc
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-18T14:12:14Z

    IGNITE-10078 wip.

commit e721aba13512433caf9b6420e00dfef76dce3c47
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-18T14:31:20Z

    IGNITE-10078 wip.

commit ef7a7857fc00bebe9fc9289ecdb687c43973e947
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-18T14:43:15Z

    IGNITE-10078 wip.

commit 22436a83dc0993461c08155b9e68b612dda3360a
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-18T15:37:16Z

    IGNITE-10078 wip.

commit d176c8b30c303f19b5beeff640e7ed5b961f81c3
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T10:34:39Z

    IGNITE-10078 wip.

commit 30a8f30eef9d76d5aa72f2bc43882c7e47f5d221
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T13:20:16Z

    IGNITE-10078 wip.

commit 97aba597a95ea4dc5e2684dfb7bc68c23e3a98d0
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T13:49:39Z

    IGNITE-10078 wip.

commit aacff35491a07f93ea844e360f774a0708b155c8
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T13:55:38Z

    IGNITE-10078 wip.

commit 29eee5c2c2790ff474957760973dd617a0584a61
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T14:02:32Z

    IGNITE-10078 wip.

commit 0b28c3d6da4285724116213d0b433160f62324cd
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-19T14:05:32Z

    IGNITE-10078 wip.

commit 06aba801780def39cb00c23a3467a534f44b0b84
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-20T22:31:03Z

    IGNITE-10078 wip.

commit a666157dc488c96fb5758daee24101c579e57b19
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-21T16:10:03Z

    IGNITE-10078 wip.

commit e9d52f94e9cb76f620bd9700aa1e7925f0a95842
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-22T10:14:10Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078
    
    # Conflicts:
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/PartitionUpdateCounter.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java

commit 7a42fdbd821c2e57c3edff16cca719e17505b68d
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-22T10:21:36Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078
    
    # Conflicts:
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/PartitionUpdateCounter.java
    #   
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java

commit 0448651174c41d33a10df44add94c25cd62d6b2d
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-11-28T13:52:10Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078

commit 603930c315e3b1999de0313e8ad2a4114bfa8cbe
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-11-30T09:05:35Z

    Merge branch 'master' of https://github.com/apache/ignite into ignite-10078

commit 826cc5573f42daefa4914beba9d37df6d5e8faf8
Author: ascherbakoff <alexey.scherbakoff@...>
Date:   2018-12-02T19:13:19Z

    IGNITE-10078 wip.

commit 68598271b519dc409680f86d5e303eaa24b91b3f
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-12-03T07:59:15Z

    Merge branch 'ignite-10078' of https://github.com/gridgain/apache-ignite 
into ignite-10078

commit 191cf44411a230099bbe0ff97c589d3a617bae18
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-12-03T16:55:52Z

    IGNITE-10078 wip.

commit f45b1a5cefe332d538a1c505b9d1840d359da8a2
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-12-03T16:58:33Z

    IGNITE-10078 wip.

commit 5446ac7ef00b9521da9c586d72fd3a42d6a722b7
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-12-04T17:10:41Z

    IGNITE-10078 wip.

commit 8cadd0666822420b1601f0acda3bf072296824a9
Author: Aleksei Scherbakov <alexey.scherbakoff@...>
Date:   2018-12-04T17:21:38Z

    IGNITE-10078 wip.

----


> Node failure during concurrent partition updates may cause partition desync 
> between primary and backup.
> -------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-10078
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10078
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexei Scherbakov
>            Assignee: Alexei Scherbakov
>            Priority: Major
>             Fix For: 2.8
>
>
> This is possible if some updates are not written to WAL before node failure. 
> They will be not applied by rebalancing due to same partition counters in 
> certain scenario:
> 1. Start grid with 3 nodes, 2 backups.
> 2. Preload some data to partition P.
> 3. Start two concurrent transactions writing single key to the same partition 
> P, keys are different
> {noformat}
> try(Transaction tx = client.transactions().txStart(PESSIMISTIC, 
> REPEATABLE_READ, 0, 1)) {
>       client.cache(DEFAULT_CACHE_NAME).put(k, v);
>       tx.commit();
> }
> {noformat}
> 4. Order updates on backup in the way such update with max partition counter 
> is written to WAL and update with lesser partition counter failed due to 
> triggering of FH before it's added to WAL
> 5. Return failed node to grid, observe no rebalancing due to same partition 
> counters.
> Possible solution: detect gaps in update counters on recovery and force 
> rebalance from a node without gaps if detected.



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

Reply via email to