mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 19:25:56 +03:00
[GH-ISSUE #3064] Tracing log level for DoH connection close #1122
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#1122
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jmwample on GitHub (Jun 17, 2025).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/3064
Is your feature request related to a problem? Please describe.
We use the DoH and DoT features of the hickory dialer as well as the
tracingandtracing-subscribertooling and continuously see logs relating to h2 connection failure in the following format:These log lines have ended up as red herrings for bug hunts related to other things. In debug logs for the same event:
What I believe is happening is that the DNS-over-HTTPS client uses H2 and keeps a tls connection open, but cloud providers don't like when people keep connections open indefinitely because it means you are keeping state in their servers. So after some time they close the connection -- apparently with the
go awaymessage. The DoH client logs a warning about this even though it is a perfectly valid way for the server side to operate, and the DNS client just opens a new connection when it needs to do a subsequent resolution.Describe the solution you'd like
Consider reducing the h2 connection EoF logging from warning to debug or consider handling the go away message without logging a warning (i.e. other errors there would still log at warning level).
This is the protocol operating as intended, not an unexpected error. I believe that the line that triggers this log is
github.com/hickory-dns/hickory-dns@1476c0616e/crates/proto/src/h2/h2_client_stream.rs (L537)Describe alternatives you've considered
We have considered simply changing the logging verbosity for the
hickory_cratecrate such that the log level is artificially dampened in the instantiated subscriber, but this exception has to be independently added for every tool we build that uses the hickory resolver and tracing.Additionally the issue is often DNS and we want the detailed debugging without the artificially dampened log level or without creating tooling centered around modifying the log level of this specific library when debugging.
Thank you!
@djc commented on GitHub (Jun 17, 2025):
Sounds fair, want to submit a PR?
@jmwample commented on GitHub (Jun 17, 2025):
I would be happy to
@jmwample commented on GitHub (Jun 30, 2025):
Update: This issue should be solved once a release is available including https://github.com/hyperium/h2/pull/847
Thanks for your help & attention on this
@djc commented on GitHub (Jun 30, 2025):
Thank you for the upstream fix!