HappyEyeballsConnectionAttempt::Claim() can strand transactions when another attempt wins
Categories
(Core :: Networking: HTTP, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox151 | --- | fixed |
People
(Reporter: kershaw, Assigned: kershaw)
References
(Blocks 1 open bug)
Details
(Whiteboard: [necko-triaged])
Attachments
(2 files, 1 obsolete file)
When HappyEyeballsConnectionAttempt::Claim() replaces the NullTransaction with a real nsHttpTransaction, the transaction is removed from the pending queue. If another HE attempt for the same ConnectionEntry wins the connection race (e.g., via H2 coalescing triggering MakeAllDontReuseExcept -> CloseAllConnectionAttempts), the losing attempt is abandoned.
The claimed transaction is never closed or requeued.
| Assignee | ||
Comment 1•3 months ago
|
||
Keep the same behavior as DnsAndConnectSocket::Claim: reset speculative flags, but leave the real transaction in the pending queue. This avoids orphaning the transaction when another happy eyeballs attempt wins the connection race and the losing attempt is abandoned.
Update test_happy_eyeballs_timings.js, since the real transaction no longer observes connection-phase transport statuses from the speculative phase.
Updated•3 months ago
|
| Assignee | ||
Comment 2•3 months ago
|
||
The previous fix for the crash in Http3Session::AddStream is not completely correct.
For H1/H2, we should skip the check so the transaction receives the connection and gets the proper error code (e.g., certificate verification failure). CanReuse on fresh H1 connections can also return false negatives when mKeepAlive is unset.
For H3, we should keep the CanReuse check to guard against sessions being destroyed between the async handshake callback and FinishInternal.
| Assignee | ||
Comment 3•3 months ago
|
||
Updated•3 months ago
|
Backed out for causing wpt failures @binaryType-wrong-value.any.html.
https://hg.mozilla.org/mozilla-central/rev/bc8fa0ed1110
https://hg.mozilla.org/mozilla-central/rev/9334bd54589e
https://hg.mozilla.org/mozilla-central/rev/19894daef11b
https://hg.mozilla.org/mozilla-central/rev/c6105b7a5c00
Updated•3 months ago
|
Description
•