Skip to content

ABA problem in database area #2722

@teymour-aldridge

Description

@teymour-aldridge

I'm mostly raising this so that people are aware that this is a risk (I know of a couple of tournaments where this has happened).

There is a classic ABA problem in the edit database area, where

A: loads list of rounds in edit-database area (state = S1)
B: edits this in the meantime (e.g. generates draw for R3) (state = S1[R3.draw = 'confirmed'])
A: updates rounds to mark round 4 as silent (state = S1 [R4 = silent])

The issue is that the behaviour people would expect is to apply the change [R4 = silent] to S3, but this is instead applied to S1 (in effect erasing the change – for example a draw and all the ballots).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions