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

Improve lifecycle management #416

Merged
merged 5 commits into from
Jul 7, 2024
Merged

Improve lifecycle management #416

merged 5 commits into from
Jul 7, 2024

Commits on Jul 6, 2024

  1. Improve lifecycle management

    1. Merge the client and the runner. The distinction was unclear and the
    client/runner/module tended to reach into each other. This change merges
    the client/runner and then separates the new "runner" from the module as
    much as possible.
    2. Completely stop/discard the runner when rebootstrapping. The new
    logic carefully waits for all components to stop before moving on.
    3. Simplify locking and make sure we take the locks where appropriate.
    4. Merge bootstrap and re-configure logic. The dynamic manifest client
    no longer cares about _when_ a manifest should be applied, it simply
    gives it to the module (F3) and let's F3 us its normal bootstrap logic.
    
    Finally, I've improved the tests to:
    
    1. Always on exit (checking for errors).
    2. Never fail from goroutines.
    3. Correctly wait for manifest changes (previously, it would wait for at
    least one node to change manifests).
    
    NOTEs:
    
    1. This removes the ability to reconfig without rebootstrap, but
    preserves the ability to _pause_ without rebootstrap.
    2. This causes bootstrap to start at the time the bootstrap epoch
    _should_ have happened instead of starting at the next non-null epoch.
    In practice, this should behave better as all nodes will start at the
    same time (and will look back 900 epochs anyways).
    Stebalien committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    2a57762 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2024

  1. Address feedback

    Stebalien committed Jul 7, 2024
    Configuration menu
    Copy the full SHA
    f528321 View commit details
    Browse the repository at this point in the history
  2. Test delayed bootstrap

    And have the test chain "catch up" if it's too far behind.
    Stebalien committed Jul 7, 2024
    Configuration menu
    Copy the full SHA
    9bb913d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f010345 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0a4f523 View commit details
    Browse the repository at this point in the history