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

Handle graceful shutdown properly #33

Open
1 of 4 tasks
ecton opened this issue Apr 14, 2021 · 1 comment
Open
1 of 4 tasks

Handle graceful shutdown properly #33

ecton opened this issue Apr 14, 2021 · 1 comment
Labels
enhancement New feature or request networking Issues relating to either the networked server or client
Milestone

Comments

@ecton
Copy link
Member

ecton commented Apr 14, 2021

For both websocket and fabruic connections, we should have a shutdown handle that can be "selected" with each of the payload receivers, so that when a shutdown is requested, any existing requests for connections are handled.

  • Introduce a shared shutdown signaling mechanism
  • Handle graceful websocket disconnects correctly #32
  • Update all connection types to reject requests with a ShuttingDown error once a graceful shutdown phase has begun.
  • Update all connection types to close their individual connections once a GracefulShutdown has begun and all outstanding requests have been serviced.
@ecton ecton added the server label Apr 14, 2021
@ecton ecton changed the title Handle graceful shutdown Handle graceful shutdown properly Apr 15, 2021
@ecton ecton added this to the v0.1.0 milestone Apr 25, 2021
@ecton ecton added this to To do in Khonsu Labs Roadmap May 20, 2021
@ecton ecton moved this from To do to Backburner in Khonsu Labs Roadmap Aug 5, 2021
ecton added a commit that referenced this issue Dec 16, 2021
This works towards #33 and #114. This new Shutdown type can be what we
expose to the Backend and plugins eventually, and it gives enough
information to each watcher that graceful shutdown can be handled across
all connection types.

That being said, this doesn't actually change any implementations -- it
refactors shutdown() to not have connection-specific code within it, and
moves that logic to the QUIC listener method.
@ecton
Copy link
Member Author

ecton commented Dec 16, 2021

I've made some progress this morning in #27b065d, but functionally nothing has changed. Added a TODO list documenting the rest.

@ecton ecton added enhancement New feature or request networking Issues relating to either the networked server or client and removed server labels Jan 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request networking Issues relating to either the networked server or client
Projects
Status: Backburner
Development

No branches or pull requests

1 participant