• Vincent Pelletier's avatar
    Fix conflict resolution race-condition. · 4f8ecce8
    Vincent Pelletier authored
    Fixes the following scenario (committing an object):
    2 storage nodes: S1 and S2
    1 replicas
    - store in S1 (1)
    - store in S2 (2)
    - S1 answers (1) with a conflict
    - client resolves the conflict, and sends to S1 (3) and S2 (4)
    - S1 answers (3) with ok
    - S2 answers (2) with a conflict
    
    Old code raises because object store counter was not 0 on an object for
    which a conflict was reported.
    New code ignores answers notifying of a conflict if given serial is the
    already-resolved conflict.
    Split & extend existing tests.
    
    git-svn-id: https://svn.erp5.org/repos/neo/trunk@2015 71dcc9de-d417-0410-9af5-da40c76e7ee4
    4f8ecce8
storage.py 5.58 KB