-
Notifications
You must be signed in to change notification settings - Fork 112
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
Design and implement graceful shutdown for Zebra #1678
Labels
A-rust
Area: Updates to Rust code
C-design
Category: Software design work
C-enhancement
Category: This is an improvement
Comments
teor2345
added
C-design
Category: Software design work
A-rust
Area: Updates to Rust code
C-enhancement
Category: This is an improvement
S-needs-triage
Status: A bug report needs triage
P-Low
labels
Feb 3, 2021
This was referenced Feb 3, 2021
Merged
This was referenced Apr 14, 2021
This was referenced May 27, 2021
5 tasks
Here's one panic that can happen when Ctrl+C'ing Zebra Error
Metadata
SpanTrace
|
This was referenced Nov 12, 2021
3 tasks
mpguerra
added
Epic
Zenhub Label. Denotes a theme of work under which related issues will be grouped
and removed
Epic
Zenhub Label. Denotes a theme of work under which related issues will be grouped
labels
Nov 24, 2021
We're gradually doing this as errors come up. |
This seems to work and has worked for months. |
6 tasks
mpguerra
added a commit
that referenced
this issue
May 19, 2023
mergify bot
pushed a commit
that referenced
this issue
May 23, 2023
* ZIPs were updated to remove ambiguity, this was tracked in #1267. * #2105 was fixed by #3039 and #2379 was closed by #3069 * #2230 was a duplicate of #2231 which was closed by #2511 * #3235 was obsoleted by #2156 which was fixed by #3505 * #1850 was fixed by #2944, #1851 was fixed by #2961 and #2902 was fixed by #2969 * We migrated to Rust 2021 edition in Jan 2022 with #3332 * #1631 was closed as not needed * #338 was fixed by #3040 and #1162 was fixed by #3067 * #2079 was fixed by #2445 * #4794 was fixed by #6122 * #1678 stopped being an issue * #3151 was fixed by #3934 * #3204 was closed as not needed * #1213 was fixed by #4586 * #1774 was closed as not needed * #4633 was closed as not needed * Clarify behaviour of difficulty spacing Co-authored-by: teor <teor@riseup.net> * Update comment to reflect implemented behaviour Co-authored-by: teor <teor@riseup.net> * Update comment to reflect implemented behaviour when retrying block downloads Co-authored-by: teor <teor@riseup.net> * Update `TODO` to remove closed issue and clarify when we might want to fix Co-authored-by: teor <teor@riseup.net> * Update `TODO` to remove closed issue and clarify what we might want to change in future Co-authored-by: teor <teor@riseup.net> * Clarify benefits of how we do block verification Co-authored-by: teor <teor@riseup.net> * Fix rustfmt errors --------- Co-authored-by: teor <teor@riseup.net>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-rust
Area: Updates to Rust code
C-design
Category: Software design work
C-enhancement
Category: This is an improvement
Motivation
In #1637, we check
is_shutting_down
in theCheckpointVerifier
and network service.But we'd like to implement graceful shutdown, where Zebra's endless loops wait on a shutdown condition or future.
We might also be able to implement this automatically using
shutdown_timeout
:https://docs.rs/tokio/1.6.1/tokio/runtime/struct.Runtime.html#method.shutdown_timeout
Here's tokio's advice on graceful shutdown:
https://tokio.rs/tokio/topics/shutdown
Ideas
Alternative designs:
is_shutting_down
select
on a shutdown future, likezebra-network
's cancel handlesselect
between a shutdown future and the actual task closureRelated Issues
Alternative faster fix Ignore some panics during shutdown using the panic handler #1677
Related fix Interrupt handler does not work when a blocking task is running #1351
Shutdown and restart tests Add restart acceptance tests #1666
Original fix Fix shutdown panics #1637
Specific issues that this fix solves:
The text was updated successfully, but these errors were encountered: