パスワードを忘れた? アカウント作成
15561536 story
Firefox

Firefoxが1月13日に一時使用不能になった問題の詳細が判明 21

ストーリー by nagazou
判明 部門より
1月13日に世界中の「Firefox」が約2時間ほど一時的に使用不能になった。原因に関してはHTTP3接続に関する問題が誘発されたとされていたが、このとき、Firefoxに何が起きたかについて、2月2日のMozillaの公式ブログで解説が行われている。それによるとMozilla側は原因の解明過程で、Firefoxの内部サービスの一つへのネットワーク要求でハングアップが起こっていることが判明したという。そのことから、ロードバランシングに使用しているクラウドプロバイダーの1社の設定変更が原因ではないかと推測(Mozilla Hacks - the Web developer blog窓の杜)。

さらに調査を進めた結果、テレメトリサービスのロードバランサ―で、それまでは行われていなかったHTTP/3接続が行われていたことが判明し、「Google Cloud Platform(GCP)」上でHTTP/3を明示的に無効化したところ、ユーザーのブロックが解除されたという。GCPのHTTP/3サポートを自動(既定)にしていたところ、1月13日07:28(協定世界時)に告知なく有効化されていたことが判明したとのこと。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年02月08日 14時34分 (#4196787)

    この抜粋だと
    ・FirefoxはHTTP/3を有効化していた
    ・GCPが事前通告なしにHTTP/3有効化した
    ・だからFirefoxでHTTP/3が出来なかった
    って意味不明な内容になっちゃう

    原因は
    ヘッダの文字列一致でHTTP/3を判定する箇所において
    小文字と大文字の違いが出て見逃してました
    ってことなんだが

    • by Anonymous Coward on 2022年02月08日 15時05分 (#4196809)

      > ヘッダの文字列一致でHTTP/3を判定する箇所において小文字と大文字の違いが出て見逃してました
      これは Firefox が使用不能になった原因

      今回のタレコミは,Firefox が【1月13日】に使用不能になった原因,とFirefox が使用不能になった原因を突き詰めるまでの過程.タレコミにあるように「Firefoxに何が起きたか」という話題.

      親コメント
      • by Anonymous Coward

        流石にその言い訳は苦しいのでは?
        その理由で端折ってこの抜粋ならなお悪い
        書き忘れではなく意図的に原因を書かずにGCPのせいだけにしているってことだよ

        • by Anonymous Coward on 2022年02月08日 16時21分 (#4196859)

          何故その日に発生したのか(何故その日まで発覚しなかったのか)と、コード上の原因はわけて考えられるべきだと思いますよ。
          その前者にしか触れていない抜粋が妥当かどうかは断じませんし、後者のコード上の問題(コンポーネントの連携部の齟齬)についても興味深かったので読むことはオススメしたいですけどね。
          GCPが事前連絡無く設定を変更したのも悪いけど、Googleだから、で納得してしまう部分はある。

          親コメント
        • by Anonymous Coward

          障害対応で、再現の条件は?とか聞きたくならない人かな。

    • by Anonymous Coward

      いや抜粋は正しいですよ。なぜなら元記事がそう書いてるからです。

      ソースコード的にはヘッダ文字列の処理(+バッファ長の扱い)にバグがあったわけですが
      元記事は mozillaの開発者ブログなので、読者はみんなバグの件は大体知ってるという前提で書かれています。

      そのうえで元記事はそのバグが発見され修正された経緯について書かれています。だからこの抜粋で正しいのです。

      元記事を読まずにタレコミが酷いと非難するのはやめましょう。

  • by Anonymous Coward on 2022年02月08日 15時08分 (#4196810)

    少し前に二日くらい間全く更新されない障害起こしてたけど、いまだに公式の報告ないよね?

    • by Anonymous Coward

      改善計画もなく報告だけされてもなあ。

  • by Anonymous Coward on 2022年02月08日 15時25分 (#4196823)

    > 「Firefox」のHTTP/3接続は、すべてネットワーキングスタック「Necko」を経由する。

    キツネのくせに、ネコを頼るなんて。

    • by Anonymous Coward

      firefox は狐でない。ネコばかりかトカゲも飼っている。

      • by Anonymous Coward

        なんか すみっコぐらしっぽい。。

    • by Anonymous Coward

      キツネはネコ目です

      • by Anonymous Coward

        目の名前をその中の動物一匹に変えるとかいう滅茶苦茶やっただけだし…

    • by Anonymous Coward

      ちなみにHTTP/3用ライブラリの名前はNeqo

  • by Anonymous Coward on 2022年02月08日 16時28分 (#4196864)

    Bugzillaのチケット [mozilla.org]見ても

    HTTP headers are case insensitive.

    と書いているし、窓の杜の記事見ても、

    「Necko」は「Content-Length」ヘッダーを追加する際、大文字と小文字を正しく挿入するため、この違いは通常、問題とならない。しかし、「viaduct」を通過するリクエストは「Content-Length」ヘッダーを小文字に変換してしまう。

    とあって、何故かRFC通りの小文字変換が誤っていて、大文字小文字混在のRFC違反が正しい挿入とされている。
    修正がcase-insensitiveなのは理解するけど、「RFC違反だけど仕方なし」の認識ではないのかな……

    • by Anonymous Coward

      case insensitive なら大文字小文字混在で問題ないのでは?
      もちろんすべて小文字、すべて大文字も違反になりませんが。
      なぜRFC違反になると考えたのですか?

      • by Anonymous Coward

        ごめん。勘違いでした。
        ・HTTP 2.0 以降は lower case が MUST
        ・んだけども、処理は case insensitive で扱う必要がある

        よって、プログラマの瑕疵としては、
        ・lower case 以外が来ることを想定していない
        ・content-length が得られない状況を想定していないうえ、ハングするようになってる
        の両方がある

        • by Anonymous Coward

          また間違えたすまねぇ。
          プログラマの瑕疵としては、
          ・ヘッダーを case sensitive で扱っていた
          ・content-length が得られない状況を想定していないうえ、ハングするようになっている
          ・動作テストが不十分だった
           nightly とか beta をすり抜けたのは残念

    • by Anonymous Coward

      RFC を金科玉条に小文字だけ処理したら
      大文字使っている野良サーバで動かなくなる。
      現実を見て大文字小文字を受け付けるべき。ブラウザは。

      たとえば HTML/CSS も閉じタグがなかったり、
      誤った使い方でも表示するように実装している。ブラウザは。

      実用的なものを作るには RFC から外れた対応も必要です。ブラウザ以外でも。

      • by Anonymous Coward

        世の中、HTTP/1.1な組み込み機器とかある訳で、最新版以外知らんという訳にはいかない。

    • by Anonymous Coward

      前回のストーリーで、RFC本文には確かに小文字とあるがサンプルがなぜか大文字小文字混じりになっているという罠があると聞いた

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...