世界中の「Firefox」が止まった原因が判明。 なるほど、分からん。

1 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:33:09.90 ID:WU1ZzfWT0

世界中の「Firefox」が一時的に使用不能になった問題について、Mozillaが詳細を明かす

「Firefox」のHTTP/3接続は、すべてネットワーキングスタック「Necko」を経由する。
しかし、ネットワークへアクセスする必要のあるRustコンポーネントは、「Necko」を直接使うのではなく、
「viaduct」と呼ばれる中間ライブラリを挟んで「Necko」を呼び出す仕組みになっている。

HTTP/3接続はリクエストサイズを決定するため、「Content-Length」ヘッダーを必要とする。
「Necko」はこのヘッダーが存在するかどうかをチェックし、存在しない場合は自動で追加する。

ところが、「Necko」のチェックでは大文字と小文字が区別されない。一方で、HTTP/3接続においては大文字と小文字が区別される。

「Necko」は「Content-Length」ヘッダーを追加する際、大文字と小文字を正しく挿入するため、この違いは通常、問題とならない。
しかし、「viaduct」を通過するリクエストは「Content-Length」ヘッダーを小文字に変換してしまう。
そのため、「Necko」のチェックをすり抜けてしまうが、実際のHTTP/3接続では「Content-Length」ヘッダーを見つけられず、
送信するコンテンツがないとして予期せず終了する。
このおかげで、コードはエラーを返すどころか、無限ループに陥る。すべてのネットワークリクエストは1つのソケットスレッドを経由するため、
このループはそれ以上のネットワーク通信をブロックしてしまい、その結果「Firefox」はWebコンテンツを読み込めずに無反応となってしまった。

 Rustベースの「Firefox」コンポーネントのうち、ネットワークスタックを利用しており、
かつ「Content-Length」ヘッダーを追加するのはテレメトリコンポーネントだけだ。

そのため、テレメトリを無効化している「Firefox」ではHTTP/3接続のエラーは幸運にも発生しなかった。
しかしこれはたまたまで、根本的な原因は「Necko」と「viaduct」の関係にあったといえる。
https://forest.watch.impress.co.jp/docs/news/1385904.html

2 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:34:55.57 ID:Y048Kt5q0
あーなるほどな
大方のケンモメンの予想通りだったな
3 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:36:21.87 ID:ErGRsZ8x0
すげえな
大方のケンモメン
4 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:36:50.77 ID:jLyd6Izo0
全ての接続が通るという「Necko」って全ての根本ってことで日本語の根っこからとってる感じしない?
ホルホルホルホル
5 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:37:10.06 ID:jub5bE6U0
テレメトリを有効にしてた献身的なユーザーがバカみたいじゃん
6 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:38:10.57 ID:wwNt16gY0
ネッコがアホやった
7 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:38:34.29 ID:TtDaFuaw0
掃除のおばちゃんが電源抜いたんだろ
8 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:38:57.45 ID:P7COSeeoa
知らんうちにHTTP3使ってたんだな
9 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:39:06.34 ID:mGKwBEWb0
なんで大文字小文字区別しないんだよ
10 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:40:39.77 ID:weIEFpooM
ネッコがゴミクヅだった
11 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:40:57.39 ID:ueW363Cr0
viaductはなんで勝手に小文字にするの?
13 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:41:18.49 ID:GDZ2SboW0
わかったにゃー
14 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:41:45.38 ID:yj2ZQ4Xi0
大分のケンモメン?
15 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:41:53.59 ID:Wy5b4tew0
ネスケに乗り換えるわ
16 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:41:59.62 ID:XEoM4VS90
だから俺があれほど脆弱性を指摘してたのに
17 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:42:19.12 ID:wXJm3p4r0
イッヌを使え
18 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:45:18.53 ID:9lp3nn/A0
こういうとき大文字小文字どっちも許容するのかそれとも頭大文字の場合のみを許容するべきなのか
どっちなのか教えてケンモメン
19 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:48:02.01 ID:KawDA9ip0
  まじかー😾
21 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:48:46.95 ID:ALL120EM0
なんかわけわからんエラー出てたのこれが原因か
22 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:49:11.20 ID:87WWKIeKa
思った通りだった。
23 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:49:11.65 ID:apdOKs6n0
最近内輪もめしてるとか言われてたけど大丈夫なのか
24 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:49:25.18 ID:Tv6QKMjv0
ふーんEDGEで十分じゃん
25 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:51:43.91 ID:Bj5h1bMb0
こんな不具合あったのか?うちのfirefox56ちゃん(エ口動画専用)は何もなかったな
26 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:52:31.39 ID:jub5bE6U0
Mozillaからの説明だとGoogleがGCPのロードバランサで予告なく勝手にHTTP3をデフォルトにしたせいと書いてあったはw
27 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:53:21.66 ID:a/FqA+Qy0
ネッコ言いたいだけやん
28 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:54:24.21 ID:WdT5JxMC0
ねこ?w
29 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:55:43.22 ID:KVN2StE40
ネコやんけ
30 名前:匿名のゴリラ 投稿日時:2022/02/04(金) 23:56:23.69 ID:S+orNseB0
ブラウザ開いて寝落ちして朝起きるとブラウザクラッシュしてる
31 名前:匿名のゴリラ 投稿日時:2022/02/05(土) 00:00:21.45 ID:iyIPyT8I0
つまりインターネットが壊れたってこと
32 名前:匿名のゴリラ 投稿日時:2022/02/05(土) 00:01:04.98 ID:NQKfNgWa0
Content-Lengthが見っかんない時のデフォルト値0で
無限ループになるのがいけない・・・・でいいのかっ
デフォルト値1ぐらいにしとけば、無限ループにならずに済んだって事かっ

コメント一覧

タイトルとURLをコピーしました