現代の2000年問題がChromeとFirefoxで起きそうになっている件

3桁の壁

WebブラウザChromeとFirefoxのバージョンが近いうちにバージョン100に到達するそうです。バージョンが2桁から3桁に変わる際、User-Agent文字列を取得して処理を行っているWebサイトが軒並み破損するリスクがあるとことが報告されました。

今から12年前にバージョン10がリリースされた際にも、先頭の「1」だけしか読まれずUser-Agent解析システムに問題が発生していました。同じように3桁に代わる今、それに対応できていないシステムで障害が発生することが懸念されています。この問題について20世紀末に発生した西暦が2000年になる際にシステムに障害が発生するリスクが可能性が示唆された2000年問題の再来とささやかれています。

何が起きるのか?

まず考えられる障害はWebサイトの破損です。バージョン100になった途端に、問題のあるライブラリを使用しているサイトは軒並みブラウザで上手く読み込めなくなる可能性があります。最悪の場合古いブラウザと誤認されてサイトが表示されなくなったり、エラーになってサーバが停止する可能性もあります。

現在バージョン100状態でエラーになるライブラリが無いか調査が進んでいます。すでに問題のあるライブラリがいくつか見つかっており、その内のいくつかは修正中または修正が完了しています。この調査は実際にバージョン100がリリースされるまで続けていくようです。

また安定したリリースに向け、予想より多くの障害が発生した時のために代替策も用意しています。

FireFoxの対策

FireFoxにはサイト介入メカニズムというものがあり、それを利用して破損したWebサイトをホットフィックス状態にすることができます。URLに「about:compat」と入れて実行すると、現在対応済みのWebサイトの一覧を見ることができます。さらに特定のドメインでメジャーバージョンが100になったサイトが破損した際、代わりにバージョン99のものを送信するシステムを作成したようです。

もし破損が広範囲に及び手に負えないレベルになった場合は、一時的にバージョンを99に凍結してテスト作業に移ります。

Chromeの対策

Chromeは問題が発生した場合の対応策としてそのサイトのメジャーバージョンを99に固定し、User-Agent文字列のマイナーバージョンの欄に実際のバージョンを設定する仕組みを作りました。この機能はすでに実装されています。その際のUser-Agent文字列は「99.101.4988.0」になります。またChromeでは、今までUser-Agent文字列のマイナーバージョンには長い間「0」以外の値が入っていない為、この項目に3桁の値を設定しても問題ないかを調査しています。

エコシステムの開発者にも協力要請中

それぞれのブラウザのチームだけではすべての問題を解決できないとして、関連するエコシステムの開発者にも対応を仰いでいます。以下のリンクにて対応策についての説明があります。

Webアプリケーション開発者として

今回の問題はブラウザやエコシステムの開発チームだけでなく、それらを利用してWebアプリケーションを開発している私たちにも影響があります。残り数か月以内にバージョン100に到達するようなので、それまでにデプロイ済み、または開発中のWebアプリケーションの中に問題となりそうなライブラリが入っていないか確認し、対応が必要かどうかを調べる必要がありそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA