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

net: support single-request resolv.conf option in pure Go resolver #29661

Closed
wants to merge 2 commits into from

Conversation

jfbus
Copy link
Contributor

@jfbus jfbus commented Jan 10, 2019

There is a DNS resolution issue in Kubernetes (UDP response packets get dropped due to a race in conntrack between the parallel A and AAAA queries, causing timeouts in DNS queries).

A workaround is to enable single-request / single-request-reopen in resolv.conf in order to use sequential A and AAAA queries instead of parallel queries.

With this PR, the pure Go resolver searches for "single-request" and "single-request-reopen" in resolv.conf and send A and AAAA queries sequentially when found.

Fixes #29644

@googlebot googlebot added the cla: yes Used by googlebot to label PRs as having a valid CLA. The text of this label should not change. label Jan 10, 2019
@gopherbot
Copy link

This PR (HEAD: 2fb6da5) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/157377 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link

Message from Bryan C. Mills:

Patch Set 1: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 1:

TryBots beginning. Status page: https://farmer.golang.org/try?commit=01e4ec79


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 1:

Build is still in progress...
This change failed on linux-386:
See https://storage.googleapis.com/go-build-log/01e4ec79/linux-386_7ff1e6bf.log

Consult https://build.golang.org/ to see whether it's a new failure. Other builds still in progress; subsequent failure notices suppressed until final report.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 2: Patch Set 1 was rebased


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 2: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 2:

TryBots beginning. Status page: https://farmer.golang.org/try?commit=0e58454d


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 1: TryBot-Result-1

7 of 19 TryBots failed:
Failed on linux-386: https://storage.googleapis.com/go-build-log/01e4ec79/linux-386_7ff1e6bf.log
Failed on freebsd-amd64-12_0: https://storage.googleapis.com/go-build-log/01e4ec79/freebsd-amd64-12_0_70e1bc7f.log
Failed on windows-386-2008: https://storage.googleapis.com/go-build-log/01e4ec79/windows-386-2008_7fe4af9a.log
Failed on linux-amd64: https://storage.googleapis.com/go-build-log/01e4ec79/linux-amd64_2233095a.log
Failed on openbsd-amd64-64: https://storage.googleapis.com/go-build-log/01e4ec79/openbsd-amd64-64_bb68c095.log
Failed on windows-amd64-2016: https://storage.googleapis.com/go-build-log/01e4ec79/windows-amd64-2016_1376eae8.log
Failed on linux-amd64-race: https://storage.googleapis.com/go-build-log/01e4ec79/linux-amd64-race_a676ebb5.log

Consult https://build.golang.org/ to see whether they are new failures.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 2: TryBot-Result+1

TryBots are happy.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Jean-François Bustarret:

Patch Set 2:

Gentle ping; Brad; Mikio; The code is ready to review. Thanks !


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 3: Patch Set 2 was rebased


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 3: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 3:

TryBots beginning. Status page: https://farmer.golang.org/try?commit=e7b25020


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 3:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 3: TryBot-Result+1

TryBots are happy.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

This PR (HEAD: d481acf) has been imported to Gerrit for code review.

Please visit https://go-review.googlesource.com/c/go/+/157377 to see it.

Tip: You can toggle comments from me using the comments slash command (e.g. /comments off)
See the Wiki page for more info

@gopherbot
Copy link

Message from Jean-François Bustarret:

Patch Set 4:

(1 comment)


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Jean-François Bustarret:

Patch Set 4:

Gentle ping Brad & co: the code is ready for review. Thanks !


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 4: Run-TryBot+1 Code-Review+2


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 4:

TryBots beginning. Status page: https://farmer.golang.org/try?commit=5fff4e87


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 4:

Build is still in progress...
This change failed on misc-vet-vetall:
See https://storage.googleapis.com/go-build-log/5fff4e87/misc-vet-vetall_33a7c4bb.log

Other builds still in progress; subsequent failure notices suppressed until final report. Consult https://build.golang.org/ to see whether they are new failures. Keep in mind that TryBots currently test exactly your git commit, without rebasing. If your commit's git parent is old, the failure might've already been fixed.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 4: TryBot-Result-1

8 of 19 TryBots failed:
Failed on misc-vet-vetall: https://storage.googleapis.com/go-build-log/5fff4e87/misc-vet-vetall_33a7c4bb.log
Failed on freebsd-amd64-12_0: https://storage.googleapis.com/go-build-log/5fff4e87/freebsd-amd64-12_0_8cce6648.log
Failed on linux-amd64: https://storage.googleapis.com/go-build-log/5fff4e87/linux-amd64_156ccd3f.log
Failed on linux-386: https://storage.googleapis.com/go-build-log/5fff4e87/linux-386_1876d9c9.log
Failed on openbsd-amd64-64: https://storage.googleapis.com/go-build-log/5fff4e87/openbsd-amd64-64_f48bb71f.log
Failed on windows-amd64-2016: https://storage.googleapis.com/go-build-log/5fff4e87/windows-amd64-2016_4ed6635f.log
Failed on linux-amd64-race: https://storage.googleapis.com/go-build-log/5fff4e87/linux-amd64-race_953c59ef.log
Failed on windows-386-2008: https://storage.googleapis.com/go-build-log/5fff4e87/windows-386-2008_0055412a.log

Consult https://build.golang.org/ to see whether they are new failures. Keep in mind that TryBots currently test exactly your git commit, without rebasing. If your commit's git parent is old, the failure might've already been fixed.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 5: Patch Set 4 was rebased


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Brad Fitzpatrick:

Patch Set 5: Run-TryBot+1


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 5:

TryBots beginning. Status page: https://farmer.golang.org/try?commit=7adfbb89


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Gobot Gobot:

Patch Set 5: TryBot-Result+1

TryBots are happy.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

@gopherbot
Copy link

Message from Jean-François Bustarret:

Patch Set 5:

Is this mergeable ? After merging, my plan is to rebase https://go-review.googlesource.com/c/go/+/156366 to fix conflicts. Thanks.


Please don’t reply on this GitHub thread. Visit golang.org/cl/157377.
After addressing review feedback, remember to publish your drafts!

gopherbot pushed a commit that referenced this pull request Apr 17, 2019
There is a DNS resolution issue in Kubernetes (UDP response packets get dropped due to a race in conntrack between the parallel A and AAAA queries, causing timeouts in DNS queries).

A workaround is to enable single-request / single-request-reopen in resolv.conf in order to use sequential A and AAAA queries instead of parallel queries.

With this PR, the pure Go resolver searches for "single-request" and "single-request-reopen" in resolv.conf and send A and AAAA queries sequentially when found.

Fixes #29644

Change-Id: I906b3484008c1b9adf2e3e9241ea23767e29df59
GitHub-Last-Rev: d481acf
GitHub-Pull-Request: #29661
Reviewed-on: https://go-review.googlesource.com/c/go/+/157377
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot
Copy link

This PR is being closed because golang.org/cl/157377 has been merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes Used by googlebot to label PRs as having a valid CLA. The text of this label should not change.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

net: support single-request resolv.conf option in pure Go resolver
3 participants