Forwarded queries fail if remote is TCP-only #3235
julian7
started this conversation in
Potential issues
Replies: 1 comment
|
Thanks a lot for the detailed report, bisect, and patch! Your analysis was spot on. With I’ve applied a fix along the lines of your patch: if a UDP response is present and marked as truncated, we now retry over TCP even if unpacking returned an error. The TCP retry also gets a fresh timeout context instead of reusing the UDP one. I also added a regression test covering this exact case. Thanks again — this was very helpful. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I've recently upgraded to 2.1.16, which brought codeberg.org/miekg/dns/v2. I have a few items in
forwarding.txt, and one of the remotes are TCP-only. While 2.1.15 works this out by retrying in TCP, but with the new miekg/dns version, it stopped working, throwing the following error:A quick run with git bisect pointed me to the first bad version: 956b4ba.
I'm not certain about the robustness of the patch I came up with, but this one helped to go through the bump:
Apparently.
client.Exchangeis throwing an errdns unpack: overflow name(sometimesdns unpack: overflow). When I hacked my way through the error filter, it turned out that the context expires while retrying, so I canceled the previous one, and created another.I hope it helps.
All reactions