• Julien Muchembled's avatar
    storage: fix bug not replicating unfinished transactions when the last ones are aborted · 7f754b5e
    Julien Muchembled authored
    This was found by the first assertion of answerRebaseObject (client) because
    a storage node missed a few transactions and reported a conflict with an older
    serial than the one being stored: this must never happen and this commit adds a
    more generic assertion on the storage side.
    
    The above case is when the "first phase" of replication of a partition
    (all history up to the tid before unfinished transactions) ended after
    that the unfinished transactions are finished: this was a corruption bug,
    where UP_TO_DATE cells could miss data.
    
    Otherwise, if the "first phase" ended before, then the partition remained stuck
    in OUT_OF_DATE state. Restarting the storage node was enough to recover.
    7f754b5e
transactions.py 23.4 KB