Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timing out on failed request is non-compliant #10

Closed
gdm85 opened this issue May 10, 2018 · 3 comments
Closed

Timing out on failed request is non-compliant #10

gdm85 opened this issue May 10, 2018 · 3 comments

Comments

@gdm85
Copy link
Collaborator

gdm85 commented May 10, 2018

I have found that the changes in c4b2236 make the DNS server (running locally as a client) non-compliant. See also: golang/go#25321

@gdm85
Copy link
Collaborator Author

gdm85 commented May 10, 2018

Nevermind. The lookup timeout is not due to that commit, sorry for the noise.

@gdm85 gdm85 closed this as completed May 10, 2018
@m13253
Copy link
Owner

m13253 commented May 10, 2018

Thank you for your contribution to this project! 🎉

The suppression of reply packet happens only when upstream servers time out.
For any other errors, a packet with either SERVFAIL or NXDOMAIN will be replied.

This suppression is a fix for mDNSResponder (the DNS cache on macOS and iOS).
It caches SERVFAIL responses without retrying it, breaking the network for several minutes.
The caching behavior is totally standard-compliant, I have nothing to complain with it.
My solution is to deliberately produce a timeout so it matches the same behavior as a real timeout.

@gdm85
Copy link
Collaborator Author

gdm85 commented May 16, 2018

@m13253 I had already said "nevermind", but thanks for the explanation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants