aardvark-dns
aardvark-dns copied to clipboard
bail on broken pipe when reading udp streams
I have an issue with netavark + aardvark-dns + podman where under certain conditions (in my case a container running tailscale as an exit node) aardvark-dns will end up stuck burning 100% cpu (and taking down container dns resolution in the process).
When it happens, aardvark-dns continually prints log lines along the lines of Error parsing dns message: broken pipe. I can't see anywhere where we bail as a result so this PR attempts to resolve that. I am hoping that if we break the loop and the socket is closed then it will just reconnect and continue to work as usual.
I am still figuring out how to get this into my version of coreOS (since it is quite deeply integrated) so that I may try to repro but I wanted to open this PR in case there was any insight here (or whether this line of reasoning is sound).
Additionally, some advice on writing a test for this would be very helpful. I am trying to set up a basic rust test but it is very involved.
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: arlyon Once this PR has been reviewed and has the lgtm label, please assign mheon for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
Tests failed. @containers/packit-build please check.
PR needs rebase.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.
Unable to repro this (and by extension provide an strace) after a few weeks of attempts so I am closing this PR. You may close the issue if you deem it necessary also