[GH-ISSUE #1976] Graceful shutdown of ServerFuture #836

Closed
opened 2026-03-16 00:30:12 +03:00 by kerem · 4 comments
Owner

Originally created by @nmittler on GitHub (Jun 22, 2023).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1976

Is your feature request related to a problem? Please describe.
When running a DNS server (via ServerFuture) as part of a larger application, it's desirable to include the shutdown of the DNS server as part of the shutdown workflow for the process.

Describe the solution you'd like
Ideally, the DNS server would support hooks to initiate a graceful shutdown, as well as notifying the application when the server shutdown has completed. During a graceful shutdown, the server would finish serving existing requests, but reject new requests.

Describe alternatives you've considered
NA

Additional context
This came up in an Istio PR, which adds a Trust-DNS-based proxy: https://github.com/istio/ztunnel/pull/536#discussion_r1238781334

Originally created by @nmittler on GitHub (Jun 22, 2023). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1976 **Is your feature request related to a problem? Please describe.** When running a DNS server (via `ServerFuture`) as part of a larger application, it's desirable to include the shutdown of the DNS server as part of the shutdown workflow for the process. **Describe the solution you'd like** Ideally, the DNS server would support hooks to initiate a graceful shutdown, as well as notifying the application when the server shutdown has completed. During a graceful shutdown, the server would finish serving existing requests, but reject new requests. **Describe alternatives you've considered** NA **Additional context** This came up in an Istio PR, which adds a Trust-DNS-based proxy: https://github.com/istio/ztunnel/pull/536#discussion_r1238781334
kerem closed this issue 2026-03-16 00:30:17 +03:00
Author
Owner

@djc commented on GitHub (Jun 25, 2023):

Sounds good to me to add something like this. Maybe look at how hyper models Server::with_graceful_shutdown()?

<!-- gh-comment-id:1606108256 --> @djc commented on GitHub (Jun 25, 2023): Sounds good to me to add something like this. Maybe look at how hyper models [`Server::with_graceful_shutdown()`](https://docs.rs/hyper/latest/hyper/server/struct.Server.html#method.with_graceful_shutdown)?
Author
Owner

@nmittler commented on GitHub (Jun 25, 2023):

Sounds good, I'll take a look. I've already started some hacking using the linkerd drain crate, since that's what Istio is using currently. I'll compare and see what works best for ServerFuture.

<!-- gh-comment-id:1606110115 --> @nmittler commented on GitHub (Jun 25, 2023): Sounds good, I'll take a look. I've already started some hacking using the [linkerd drain](https://github.com/linkerd/drain-rs) crate, since that's what Istio is using currently. I'll compare and see what works best for `ServerFuture`.
Author
Owner

@blaine commented on GitHub (Jun 28, 2023):

This is extremely apropos for us! Will be watching this, let us know if we can help. cc @zeeshanlakhani

<!-- gh-comment-id:1611736700 --> @blaine commented on GitHub (Jun 28, 2023): This is extremely apropos for us! Will be watching this, let us know if we can help. cc @zeeshanlakhani
Author
Owner

@nmittler commented on GitHub (Jul 1, 2023):

@blaine @zeeshanlakhani FYI #1977 is out for review if you're interested

<!-- gh-comment-id:1616187114 --> @nmittler commented on GitHub (Jul 1, 2023): @blaine @zeeshanlakhani FYI #1977 is out for review if you're interested
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#836
No description provided.