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

keyring: fixes for keyring replication on cluster join #14987

Merged
merged 4 commits into from
Oct 21, 2022

Commits on Oct 20, 2022

  1. keyring: don't unblock early if rate limit burst exceeded

    The rate limiter returns an error and unblocks early if its burst limit is
    exceeded (unless the burst limit is Inf). Ensure we're not unblocking early,
    otherwise we'll only slow down the cases where we're already pausing to make
    external RPC requests.
    tgross committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    958fab4 View commit details
    Browse the repository at this point in the history
  2. keyring: set MinQueryIndex on stale queries

    When keyring replication makes a stale query to non-leader peers to find a key
    the leader doesn't have, we need to make sure the peer we're querying has had a
    chance to catch up to the most current index for that key. Otherwise it's
    possible for newly-added servers to query another newly-added server and get a
    non-error nil response for that key ID.
    
    Ensure that we're setting the correct reply index in the blocking query.
    
    Note that the "not found" case does not return an error, just an empty key. So
    as a belt-and-suspenders, update the handling of empty responses so that we
    don't break the loop early if we hit a server that doesn't have the key.
    tgross committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    e8a0ec1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1c31df7 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2022

  1. leader: initialize keyring after we have consistent reads

    Wait until we're sure the FSM is current before we try to initialize the
    keyring.
    
    Also, if a key is rotated immediately following a leader election, plans that
    are in-flight may get signed before the new leader has the key. Allow for a
    short timeout-and-retry to avoid rejecting plans
    tgross committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    45f7352 View commit details
    Browse the repository at this point in the history