Skip to content

Conversation

@SolidWallOfCode
Copy link
Member

@SolidWallOfCode SolidWallOfCode commented Oct 29, 2021

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

@SolidWallOfCode SolidWallOfCode added this to the 10.0.0 milestone Oct 29, 2021
@SolidWallOfCode SolidWallOfCode self-assigned this Oct 29, 2021
@bryancall bryancall requested a review from bneradt November 1, 2021 23:11
// See issue #8417.
remove_trigger_pending_dns();
} else {
// "local" signal to give up, usually due this being one of those "other" queries.
Copy link
Contributor

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..."

@SolidWallOfCode SolidWallOfCode merged commit bfd5f89 into apache:master Nov 4, 2021
zwoop pushed a commit that referenced this pull request Jun 7, 2022
@zwoop
Copy link
Contributor

zwoop commented Jun 7, 2022

Cherry-picked to v9.2.x

@zwoop zwoop modified the milestones: 10.0.0, 9.2.0 Jun 7, 2022
bryancall pushed a commit that referenced this pull request Jun 15, 2022
@bryancall bryancall modified the milestones: 9.2.0, 9.1.X, 9.1.3 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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants