Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raft: proactively probe newly added followers #11037

Merged
merged 8 commits into from
Aug 16, 2019
Merged

Commits on Aug 14, 2019

  1. raft/rafttest: fix stabilize handler

    It was bailing out too early.
    tbg committed Aug 14, 2019
    Configuration menu
    Copy the full SHA
    c2d9514 View commit details
    Browse the repository at this point in the history
  2. raft: initialize new Progress at LastIndex, not LastIndex+1

    Initializing at LastIndex+1 meant that new peers would not be probed
    immediately when they appeared in the leader's config, which delays
    their getting caught up.
    tbg committed Aug 14, 2019
    Configuration menu
    Copy the full SHA
    fdaed88 View commit details
    Browse the repository at this point in the history
  3. rafttest: add _breakpoint directive

    It is a helper case to attach a debugger to when a problem needs
    to be investigated in a longer test file. In such a case, add the
    following stanza immediately before the interesting behavior starts:
    
    _breakpoint:
    ----
    ok
    
    and set a breakpoint on the _breakpoint case.
    tbg committed Aug 14, 2019
    Configuration menu
    Copy the full SHA
    3d6721f View commit details
    Browse the repository at this point in the history
  4. raft: proactively probe newly added followers

    When the leader applied a new configuration that added voters, it would
    not immediately probe these voters, delaying when they would be caught
    up.
    
    I noticed this while writing an interaction-driven test, which has now
    been cleaned up and completed.
    tbg committed Aug 14, 2019
    Configuration menu
    Copy the full SHA
    4e19150 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2019

  1. raft: add a batch of interaction-driven conf change tests

    Verifiy the behavior in various v1 and v2 conf change operations.
    This also includes various fixups, notably it adds protection
    against transitioning in and out of new configs when this is not
    permissible.
    
    There are more threads to pull, but those are left for future commits.
    tbg committed Aug 16, 2019
    Configuration menu
    Copy the full SHA
    306e75a View commit details
    Browse the repository at this point in the history
  2. raft: document problem with leader self-removal

    When a leader removes itself, it will retain its leadership but not
    accept new proposals, making the range effectively stuck until manual
    intervention triggers a campaign event.
    
    This commit documents the behavior. It does not correct it yet.
    tbg committed Aug 16, 2019
    Configuration menu
    Copy the full SHA
    8d1946d View commit details
    Browse the repository at this point in the history
  3. raft: fix a test file name

    tbg committed Aug 16, 2019
    Configuration menu
    Copy the full SHA
    99f8046 View commit details
    Browse the repository at this point in the history
  4. rafttest: print Ready before processing it

    It was confusing to see the effects of the Ready (i.e. log messages)
    printed before the Ready itself.
    tbg committed Aug 16, 2019
    Configuration menu
    Copy the full SHA
    47ae53d View commit details
    Browse the repository at this point in the history