Consolidate shutdown logic in K8s leader election error handling#284
Conversation
|
@copilot haven't you missed something you didn't changed anything ? |
|
@copilot haven't you missed something you didn't changed anything ? |
Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com>
Fixed! Added
You're right, I apologize! I wrote the PR description but didn't make the actual code changes. I've now fixed it by adding |
There was a problem hiding this comment.
Pull request overview
This PR consolidates shutdown logic in the Kubernetes leader election error handling by ensuring proper cleanup occurs on all error paths.
- Adds
shutdown()calls before returning errors in two error paths to ensure consistent cleanup - Ensures leader tasks are properly cancelled and leases are stepped down even when errors occur during lease acquisition or renewal
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
* init: add k8s yaml * feat: add k8s leader election logic * add: k8s yamls * mod: add k8s leader shutdown * add: k8s node yaml * fix: use pv&pvc to maintain status on k8s * chore: yaml && add docs * feat: mod batch producer load batch number when it starts (#272) * fix: cargo.toml * chore: toml * mod: k8s + ovh * chore: lint Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: fix here we have 2 result imbricated Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: change a bit Signed-off-by: Sacha Froment <sfroment42@gmail.com> * feat: add node deploy Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: fix potential race Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: update docs Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: use anyhow error Signed-off-by: Sacha Froment <sfroment42@gmail.com> * refactor: change the way the main is started" (#275) * chore: add health check Signed-off-by: Sacha Froment <sfroment42@gmail.com> * refactor: change the way the main is started Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: nitpick * mod: k8s yaml * chore: remove command in justfile * chore: fix just sequencer & node , fix kill process in start.sh * chore: rm * refactor: coordination k8s (#276) * refactor: coordination k8s Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: save Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: keep health alive Signed-off-by: Sacha Froment <sfroment42@gmail.com> * fix: start Signed-off-by: Sacha Froment <sfroment42@gmail.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: remove useless Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: review comment Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: add back save on shutdown Signed-off-by: Sacha Froment <sfroment42@gmail.com> --------- Signed-off-by: Sacha Froment <sfroment42@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update justfile Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update cmd/sequencer/src/main.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update cmd/sequencer/src/cli.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update cmd/node/src/cli.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update cmd/sequencer/src/cli.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update justfile Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: fix 1st call Signed-off-by: Sacha Froment <sfroment42@gmail.com> * Refactor: Use idiomatic assert! in CLI tests (#277) * Initial plan * Replace if-panic patterns with assert! in CLI tests Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * Fix missing assert in CLI test for command parsing (#278) * Initial plan * Fix matches! macro usage in sequencer CLI tests Added assert! around matches! calls in parse_stop_and_get_pub_key test to properly verify command types instead of just evaluating the boolean. Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Signed-off-by: Sacha Froment <sfroment42@gmail.com> Co-authored-by: Giwook-Han <hkw00011@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * chore: lint Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: lint Signed-off-by: Sacha Froment <sfroment42@gmail.com> * chore: fix registry Signed-off-by: Sacha Froment <sfroment42@gmail.com> * Update docs/k8s.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs/k8s.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix StatefulSet name references in k8s documentation (#283) * Initial plan * Fix StatefulSet name references in k8s documentation Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * Fix documentation references to use correct StatefulSet manifest filename (#282) * Initial plan * Fix documentation: update references from deploy.sequencer.yaml to stateful.sequencer.yaml Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * Fix incorrect filename references in Kubernetes documentation (#281) * Initial plan * Fix all references from deploy.sequencer.yaml to stateful.sequencer.yaml Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * Consolidate shutdown logic in K8s leader election error handling (#284) * Initial plan * Call shutdown() on error paths to ensure consistent cleanup Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com> * fix: healt.port Signed-off-by: Sacha Froment <sfroment42@gmail.com> --------- Signed-off-by: Sacha Froment <sfroment42@gmail.com> Co-authored-by: Sacha Froment <sfroment42@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfroment <7238385+sfroment@users.noreply.github.com>
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.