Bug 1691721 - Remove early partial DNS records prefs r=necko-reviewers,kershaw

These prefs were mostly a perf improvement - return the first address family
first then merge the result with the other family.
However, this turned out to cause intermittent issues on some sites, so it
was turned off by default.
Removing these prefs allows us to have the same functionality across all
our resolvers - one request means one callback after both A and AAAA responses
have been received.

Differential Revision: https://phabricator.services.mozilla.com/D99757
This commit is contained in:
Valentin Gosu 2021-02-09 14:22:56 +00:00
parent e52569a7f9
commit ac524e72f8
2 changed files with 2 additions and 32 deletions

View File

@ -8729,12 +8729,6 @@
value: false
mirror: always
# Allow AAAA entries to be used "early", before the A results are in
- name: network.trr.early-AAAA
type: RelaxedAtomicBool
value: false
mirror: always
# When true, it only sends AAAA when the system has IPv6 connectivity
- name: network.trr.skip-AAAA-when-not-supported
type: RelaxedAtomicBool
@ -8748,14 +8742,6 @@
value: true
mirror: always
# When true, the DNS request will wait for both A and AAAA responses
# (if both have been requested) before notifying the listeners.
# When true, it effectively cancels `network.trr.early-AAAA`
- name: network.trr.wait-for-A-and-AAAA
type: RelaxedAtomicBool
value: true
mirror: always
# Explicitly disable ECS (EDNS Client Subnet, RFC 7871)
- name: network.trr.disable-ECS
type: RelaxedAtomicBool

View File

@ -217,24 +217,8 @@ AHostResolver::LookupStatus TRRQuery::CompleteLookup(
mFirstTRR.swap(newRRSet); // autoPtr.swap()
MOZ_ASSERT(mFirstTRR && !newRRSet);
if (StaticPrefs::network_trr_wait_for_A_and_AAAA()) {
LOG(("CompleteLookup: waiting for all responses!\n"));
return LOOKUP_OK;
}
if (pendingARequest && !StaticPrefs::network_trr_early_AAAA()) {
// This is an early AAAA with a pending A response. Allowed
// only by pref.
LOG(("CompleteLookup: avoiding early use of TRR AAAA!\n"));
return LOOKUP_OK;
}
// we can do some callbacks with this partial result which requires
// a deep copy
newRRSet = mFirstTRR;
// Increment mResolving so we wait for the next resolve too.
rec->mResolving++;
LOG(("CompleteLookup: waiting for all responses!\n"));
return LOOKUP_OK;
} else {
// no more outstanding TRRs
// If mFirstTRR is set, merge those addresses into current set!