Thanks for the log. I think I've figured out what's happening. 1. `AltSvcCache::UpdateAltServiceMapping` starts eager validation of an `h3` alternative and marks the connection info as `Http3Only`. This prevents Happy Eyeballs from falling back to H1/H2 and incorrectly validating the mapping — [AlternateServices.cpp#937](https://searchfox.org/mozilla-central/source/netwerk/protocol/http/AlternateServices.cpp#937). 2. `CreateHappyEyeballs` respects that flag and initializes the engine with `h1 = false, h2 = false` — [HappyEyeballsConnectionAttempt.cpp#197](https://searchfox.org/mozilla-central/source/netwerk/protocol/http/HappyEyeballsConnectionAttempt.cpp#197). 3. This is correct as long as the attempt remains speculative. The problem is that the speculative connection can be also used by normal transaction and inherit a race that can never fall back to TCP. Since we've already let Happy Eyeballs ride the trains in bug 2062892, I think the most important thing to do right now is to revert that change to avoid affecting release users.
Bug 2063452 Comment 3 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Thanks for the log. I think I've figured out what's happening. 1. `AltSvcCache::UpdateAltServiceMapping` starts eager validation of an `h3` alternative and marks the connection info as `Http3Only`. This prevents Happy Eyeballs from falling back to H1/H2 and incorrectly validating the mapping — [AlternateServices.cpp#937](https://searchfox.org/mozilla-central/source/netwerk/protocol/http/AlternateServices.cpp#937). 2. `CreateHappyEyeballs` respects that flag and initializes the engine with `h1 = false, h2 = false` — [HappyEyeballsConnectionAttempt.cpp#197](https://searchfox.org/mozilla-central/source/netwerk/protocol/http/HappyEyeballsConnectionAttempt.cpp#197). 3. This is correct as long as the attempt remains speculative. The problem is that the speculative connection can be also used by normal transaction and inherit a race that can never fall back to TCP. **As a result, users with UDP blocked can never reach sites that support HTTP/3.** Since we've already let Happy Eyeballs ride the trains in bug 2062892, I think the most important thing to do right now is to revert that change to avoid affecting release users.