-
Notifications
You must be signed in to change notification settings - Fork 844
Update HostDBContinuation timeout handling to clear pending queue. #8480
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bneradt
reviewed
Nov 1, 2021
| // See issue #8417. | ||
| remove_trigger_pending_dns(); | ||
| } else { | ||
| // "local" signal to give up, usually due this being one of those "other" queries. |
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: "usually due to this..."
bneradt
approved these changes
Nov 1, 2021
zwoop
pushed a commit
that referenced
this pull request
Jun 7, 2022
Contributor
|
Cherry-picked to v9.2.x |
bryancall
pushed a commit
that referenced
this pull request
Jun 15, 2022
ywkaras
pushed a commit
to ywkaras/trafficserver
that referenced
this pull request
Jul 7, 2022
…pache#8480) (apache#615) Closes apache#8417 (cherry picked from commit bfd5f89) Conflicts: iocore/hostdb/HostDB.cc Co-authored-by: Alan M. Carroll <amc@apache.org>
moonchen
pushed a commit
to moonchen/trafficserver
that referenced
this pull request
Jul 26, 2022
…pache#8480) (apache#360) Closes apache#8417 (cherry picked from commit bfd5f89) Co-authored-by: Alan M. Carroll <amc@apache.org>
masaori335
pushed a commit
to masaori335/trafficserver
that referenced
this pull request
Feb 21, 2023
* asf/9.2.x: Updated ChangeLog Add proxy.process.hostdb.total_serve_stale (apache#8873) Allow for long Http* error.log lines (apache#8855) mkdfa.c is not being used and doesn't compile with gcc 12.1.1 (apache#8838) Add compatibility define when building with OpenSSL3 (apache#8837) Make post-early-return Au test more robust. (apache#8832) Add support for caching complete responses to the cache range requests plugin (apache#8816) Fixes issues with the CRR plugin introduced in apache#8488 (apache#8828) slice and cache_range_requests: allow header override (apache#8666) (apache#8898) Removed references to the throttle option from the slice plugin. (apache#8373) (apache#8897) cache_range_requests plugin: don't require 206 Partial Content reason string (apache#8488) Improve option processing in cache promote (apache#8501) Change parent_select Init func to constructor (apache#8853) Fix "is is" typos. (apache#8866) Eliminate duplicate words. (apache#8870) money_trace: allow custom header, change span-id gen, opt to create if none (apache#8655) Update HostDBContinuation timeout handling to clear pending queue. (apache#8480) Upgrade to Proxy Verifier 2.4.0. (apache#8884) Change ats_scoped_obj to std::unique_ptr . (apache#8882)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After pondering the proposed fix in #8417 I think I understand what's going on and why that change works. A key point is a query rate that is fast enough that the pending queue for that FQDN never empties. In such a case a transient error (which can happen, it's UDP) causes a permanent block because new queries to HostDB see the non-empty queue and don't send a DNS query on the wire. As long as the requests keep coming in, this condition persists. The change is that if there is a timeout on a HostDB query, clear the queue and fail all of the currently pending requests. After that, the next HostDB query will generate a DNS query and if the error was transient then queries will work again.
I concur that it was probably #6686 that caused this problem.
Closing #8417