Forwarded queries fail if remote is TCP-only #3235
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. |
Beta Was this translation helpful? Give feedback.
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.
Beta Was this translation helpful? Give feedback.
All reactions