PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

FirefoxがIntel Raptor Lake環境でついに安定化、1年越しのクラッシュ問題にMozillaが対応

キーポイント

1年かけて見えてきた「Firefoxが落ちる本当の理由」

Mozillaが、IntelのRaptor Lake CPU上でFirefoxがクラッシュする問題に対処しました。Tom's Hardwareの記事によると、これは1年以上調査されていた問題で、最新の安定版 Firefox 151.01 で修正されたとのことです。

image_0002.svg

ここで面白いのは、最初は「Firefox側のバグかな?」と思われていたのに、掘っていくと原因がIntel 13世代/14世代CPUの不安定性に行き着いたことです。
つまり、ブラウザが悪いというより、​CPUがときどき変なデータを返してしまうことが引き金になっていた、という話です。

技術用語でいうと、記事中に出てくる zlib-rs は圧縮処理のためのライブラリです。ざっくり言えば、データを小さくしたり戻したりする部品ですね。Firefoxは内部でこうした部品を使っていますが、そこに変な値が入ると、​配列の外を読んでしまう(index out-of-bounds)​ようなクラッシュにつながります。
この手の不具合、ユーザーから見ると「ただFirefoxが落ちる」だけなので本当に厄介です。再現も難しいし、原因も見えにくい。正直、調査チームはかなりしんどかっただろうなと思います。

image_0003.svg

何が起きていたのか

記事によれば、Mozillaのエンジニアは最初、圧縮処理の中でdist values(距離を表す値)がおかしいことに注目しました。そこから「データが壊れているっぽい」となり、原因調査が進みます。

image_0004.svg

ところが最終的には、問題の根っこは IntelのRaptor Lake向け命令 RPL050 と RPL060 に関連していた、とされています。
この命令が原因で、CPUコアが古い、または間違ったデータを読むことがあるらしいのです。

ここがかなり重要です。
普通、ソフトウェアのクラッシュは「アプリが悪い」「メモリが壊れた」「ドライバが怪しい」などと疑われがちですが、今回はCPUの挙動そのものが疑われたわけです。しかもブラウザのような、ふだん安定して動いてほしいソフトでそれが起きる。そりゃ開発者もユーザーも困ります。

image_0005.svg

Intel 13世代・14世代CPUの“あの問題”とつながる話

Firefoxのクラッシュは、以前からIntelのCPU不安定性と結びつけて報告されていたそうです。
要するに、「Firefoxが勝手に悪さをした」というより、​Intelの一部CPU環境で、Firefoxがクラッシュしやすい条件が重なっていたという見方です。

この話、個人的にはかなり象徴的だと思います。
というのも、ブラウザはPCの中でも“軽そうに見えて実は超重要”なソフトだからです。動画視聴、Web会議、開発、買い物、銀行、仕事…ぜんぶブラウザでやる時代に、そこが不安定だと影響が大きい。
ゲームだけ落ちるならまだしも、Firefoxが落ちるのはかなり日常生活へのダメージが大きいですよね。

image_0006.svg

ユーザーにとって何がうれしいのか

今回の修正で、Intel Raptor Lake搭載PCを使っているFirefoxユーザーは、少なくともこの特定のクラッシュ問題から解放される可能性が高いです。
もちろん、PC全体の不安定さが完全に消えるという話ではありません。でも、​​「Firefoxだけ妙に落ちる」みたいな謎のトラブルが減るのはかなり大きいです。

image_0008.jpg

私なら、こういう話を聞いたらまずFirefoxを最新版に上げます。
理由は単純で、こうした問題は再現条件が限られるぶん、アップデートで直るなら直したほうがいいからです。特に13世代・14世代Intel Coreを使っている人は、ブラウザの安定性に恩恵がありそうです。

こういう修正が面白い理由

image_0009.png

このニュースが面白いのは、単に「Firefoxのバグ修正」では終わらないところです。
ソフトウェアの問題に見えて、実はハードウェアの挙動が深く絡んでいた。しかも、それを突き止めるのに1年かかっている。これは現代のPCトラブルの難しさをよく表しています。

最近のPCは、OS、ブラウザ、ライブラリ、CPU命令、マイクロコード、ドライバ…と、いろんな層が複雑に絡みます。だから「落ちた」という結果は同じでも、原因はまったく別、ということが珍しくありません。
今回の件は、その典型例ではないかと思います。

image_0010.jpg

まとめ

image_0011.png


参考: After a year, Firefox finally stops crashing on Intel

同じ著者の記事