Closed Bug 2051272 Opened 1 month ago Closed

With Happy Eyeballs enabled, Alt-Svc mappings are not validated through AltSvcTransaction.

Categories

(Core :: Networking: HTTP, defect, P2)

defect

Tracking

()

RESOLVED FIXED
155 Branch
Tracking Status
firefox154 --- fixed
firefox155 --- fixed

People

(Reporter: kershaw, Assigned: kershaw)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(2 files)

Bug 1953464 made nsHttpConnectionInfo::BuildHashKey drop the routed host/port from the hash key when HE is enabled, so the alternate now shares the origin’s ConnectionEntry. As a side effect, the alternate’s connection info hashes identically to the origin’s, which breaks validation in two ways:

  1. Validation is bypassed (h2 and h3): AltSvcMapping::ProcessHeader uses ci->HashKey().Equals(aTransConnInfo->HashKey()) as a skip check. With the new hash key behavior, that comparison now matches for every normal Alt-Svc header, so the mapping is treated as valid without actually being validated. Claim can also abort an in-flight validation attempt. This part is protocol-agnostic.
  2. Validation can never complete (h2 only): if validation is forced, SpeculativeConnect reuses the origin’s entry, and ProcessTCPConn returns the H2 connection to the pool without binding it to the AltSvcTransaction. As a result, MaybeValidate fails its precondition: conn=0 ... Failed due to precondition. (ProcessUDPConn for h3 already activates the transaction, so for h3, MaybeValidate works once the bypass issue is fixed.)
Assignee: nobody → kershaw
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 11 days ago
Resolution: --- → FIXED
Target Milestone: --- → 155 Branch
Closed: 2026-07-23 16:16:42 2026-07-23 16:16:42
Attachment #9616757 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined/Reason for urgency: We won't create a HTTP/3 connection when a Alt-svc header is received.
    We mainly need this patch on beta because we probably want to do an experiment for HEv3 on beta.
  • Code covered by automated testing?: yes
  • Fix verified in Nightly?: yes
  • Needs manual QE testing?: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: The patch is verified on nightly and the pref is false by default.
  • String changes made/needed?: N/A
  • Is Android affected?: yes
Attachment #9616757 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: