Skip to content

Commit

Permalink
storage: fix disappearing RHS merge bug
Browse files Browse the repository at this point in the history
The strategy used by the replica GC queue to determine whether a
subsumed range can be GC'd is flawed. If a replica of the LHS was
uninitialized at the time the merge commmitted, there is a small window
where the replica GC queue can think that it's safe to clean up an RHS
replica when in fact the uninitialized LHS replica could still
initialize and apply a merge trigger that required that RHS to be
present.

Make the replica GC queue's strategy valid by requiring that all
replicas of the LHS are initialized before beginning a merge
transaction. This closes the window during which a replica of the RHS
could be incorrectly GC'd with a patch that is small enough to be
backported to v2.1.1.

Fix #31719.

Release note: None
  • Loading branch information
benesch committed Oct 28, 2018
1 parent 53c5737 commit a3b85db
Show file tree
Hide file tree
Showing 6 changed files with 694 additions and 44 deletions.
Loading

0 comments on commit a3b85db

Please sign in to comment.