Csütörtökön reggel a Firefox bizonyos körülmények között nem töltött be oldalakat, vagy összeomolhatott.
Ezt egy a böngészőben lévő HTTP/3 hiba okozta, amelyet az események sora „aktivált”. A Firefox telemetria hálózati elérésében történő változtatás miatt olyan felhőszolgáltatás Load Balancer szolgáltatás lett használatba véve, amely a „Content-Length” HTTP fejlécet kisbetűsként, azaz „content-length” formában adta meg. A szabvány szerint nem kis- és nagybetűérzékeny formában megadott HTTP fejlécet kisbetűs módon megadva a Firefox nem vette figyelembe és a FindRequestContentLength függvényhívás 0 mérettel számolta. Ennek következményeként a Firefox hibás hálózati alrendszere (Necko) feldolgozási ágba került és belső hálózati puffereket felemésztve végtelen ciklusba került - amely a többi weboldalt is elérhetetlenné tette és a böngészőn a lefagyás jelei lettek úrrá...
A Mozilla a hibát a Firefox tegnap megjelent 96.0.1 verziójával javította. A kiadási megjegyzéseket itt találja. Ez a kiadás egy másik hibát is javít amely a Windows rendszereken érinti a proxy megadásának kivétel kezelését, a „Rendszerbeállítások használata” beállítás esetén (1749501). A hibával kapcsolatban a fejlesztő további stabilitást javító szoftverfrissítést is terveznek.
Letöltés
A legújabb Firefox továbbra is Windows (AMD 64 bites, ARM 64 bites és 32 bites), Linux (64 és 32 bites) és OS X (Intel és Apple Silicon) operációs rendszerekre tölthető le, szokás szerint magyar nyelven is. A most kiadott verzió fejlesztéseiről a kiadási megjegyzésekben lehet olvasni, a közzétett biztonsági hirdetményeket pedig itt lehet elolvasni. Linux Mint esetén a frissítés elérhető a Frissítéskézelő alkalmazásban, illetve más platformok esetén terjesztés által biztosított frissítési csatornákon keresztül. A Windows 11 felhasználók már telepíthetik a Microsoft Store-ból.
Frissült az androidos Firefox is, amelyről szintén közzétettek kiadási megjegyzéseket a fejlesztők. A Firefox ESR – hosszan támogatott – 91.5.0 verziója is hamarosan megkapja ezt a javítást.
A Firefox következő – 97-es – verziója, várhatóan 2022. február 8-án jelenik majd meg.
A megkerülő megoldás visszaállítása
A hiba hivatalos javítása után érdemes lehet az átmeneti megkerülő megoldást, mind a telemetria letiltását, mind a HTTP/3 letiltását visszakapcsolni. Az előbbit a „Beállítások” között, utóbbit az about:config oldalon. A következő - az about:config beállításokkal további testreszabási beállításokat végezhető el. A felület eléréséhez írja be a címsorba a következőt:
about:config
A megjelenő ablakban kattintson a „Kockázat elfogadás és továbblépés” gombra:
Az megjelenő felső keresőmezőben kereshető a beállítás neve részben vagy egészben. A keresés után a szűrt listából:
network.http.http3.enabled
A HTTP/3 letiltásához állítsa false értékre.
A visszaállításhoz a beállított false értéket állítsa vissza az alapértelmezett true értékre.
A jelenlegi beállításról (HTTP3 vagy HTTP/2) ezen a teszt oldalon is meg tud győződni: https://cloudflare-quic.com/
Ez a hiba másnál is előfordult, előfordul? Ki mit tapasztalt?
Hozzászólások
Ahogy nézem az ESR HTTP/3
Beküldte kami911 -
Értékelés:
Ahogy nézem az ESR HTTP/3 javítása még nem érkezett meg sajnos (91.5.1).
Nem bejelentett változás okozta a problémát. Mi is volt?
Beküldte kimarite -
Értékelés:
A szervezethez 2022. január 13-án érkeztek bejelentések arról, hogy a Firefox a csatlakozási kísérletek során akadozott. Akkor úgy látta, hogy az összeomlásról szóló jelentések megugrottak, de nem rendelkezett sok információval arról, hogy mi okozta a problémát.
A Mozilla mérnökei felfedezték, hogy egy hálózati kérés okozta a Firefox-felhasználók akadozását. A mérnökök megnézték a közelmúltbeli módosításokat vagy frissítéseket, de nem találtak olyat, amely a felhasználók által tapasztalt problémát okozhatta volna.
A Mozilla arra gyanakodott, hogy a problémát az egyik felhőszolgáltató által a terheléselosztáshoz használt felhőszolgáltató nemrégiben végrehajtott "láthatatlan" konfigurációs módosítása okozhatta. A szervezet több szolgáltató infrastruktúráját használja olyan szolgáltatásokhoz, mint az összeomlás jelentések, a telemetria, a frissítés vagy a tanúsítványkezelés.
A beállítások nem változtak az ellenőrzés során, de a mérnökök észrevették, hogy a Telemetria szolgáltatás HTTP/3 kapcsolatokat szolgáltat ki, amit korábban nem tett. A HTTP/3-at a Mozilla letiltotta, és a felhasználók végre újra használhatták a Firefoxot a szolgáltatásokhoz való csatlakozásra. A HTTP/3 beállítása a felhőszolgáltatónál automatikus értékkel volt beállítva.
A Mozilla a legégetőbb probléma elhárítása után részletesebben is megvizsgálta a problémát. Minden HTTP/3 kapcsolat a Necko hálózati stacken keresztül megy, de a Rust komponensek a viaduct nevű könyvtárat használják a Necko hívására.
A Necko ellenőrzi, hogy van-e fejléc, és ha nincs, akkor hozzáadja azt. A HTTP/3 a fejlécre támaszkodik a kérés méretének meghatározásakor. A Necko ellenőrzései nagy- és kisbetű-érzékenyek. Most előfordult, hogy a viaducton keresztül érkező kéréseket a könyvtár automatikusan kisbetűsre írta; ez azt jelentette, hogy a viaducton keresztül érkező minden olyan kérés, amely tartalomhosszúságú fejlécet adott hozzá, átment a Neckón, de a HTTP/3 kóddal problémákba ütközött.
Az egyetlen olyan Rust komponens, amely a hálózati vermet használja és tartalomhosszúságú fejlécet ad hozzá, a Firefox webböngésző Telemetria komponense. A Mozilla megjegyzi, hogy ez volt az oka annak, hogy a Telemetry kikapcsolása a Firefoxban megoldotta a problémát a felhasználói oldalon. A HTTP/3 letiltása szintén megoldotta a problémát.
A probléma végtelen hurkot okozott, amely blokkolta a további hálózati kommunikációt, mivel a Mozilla szerint "minden hálózati kérés egy socket szálon keresztül megy".
A HTTP/3 bevezetése a Google-nél, amely a kérdéses felhőszolgáltató volt, bejelentés nélkül történt.
Zárszavak
A Mozillának fel kell tennie magának a kérdést, hogy jó ötlet-e olyan felhőinfrastruktúrára támaszkodni, amelyet a legnagyobb riválisa üzemeltet a böngészők terén.
Bővebben (a kép forrása):
https://www.ghacks.net/2022/02/03/mozilla-explains-the-january-2022-firefox-outage-that-blocked-connections/