壊れたキャッシュによるFile not foundエラーや、レイアウト崩れ、スクリプトの動作不良バグ

Firefox 16の頃から、戻るボタンや、進むボタン、セッション復元時等に、ページ全体がFile not foundというエラーになってしまったり、CSSファイルや、Javascriptファイルの読み込みにだけ失敗して、レイアウトが崩れてしまったり、Webアプリがうまく動かなかったり、という、非常に不快なバグがあります。今回は2012年11月末現在での状況を紹介しておこうと思います。

まず、当初のこのバグの発生した原因というのは未だに分かっていません。最初にキャッシュファイル生成時に、書き込みを終えた時に正しくファイルが閉じられていないことがあるケースが発見され、これはBug 771832でFirefox 17上で修正されました。

ですが、それだけではまだ再現する、ということで、壊れたキャッシュ自体を作ってしまうバグを修正するために、Bug 808532が登録されました。また、壊れたキャッシュを読み込んでしまった場合に、エラーとして断念せずに、ネットワークから再取得するように修正するため、Bug 812483が登録されました。

後者のパッチは、ほぼ完成していましたが、これはキャッシュが駄目になるバグが今後も発生した場合に気付かないのは良くないということで、投入するとしてもNightly以外にしようという話になっていました。ですが、そんな中、9月6日にFirefox 18上で修正された、Bug 405407が原因ではないかという話が出てきて、11月20日にNightlyから、11月26日にBetaから、11月28日にAuroraからバックアウトされました。このおかげか、私の手元ではここ最近、Nightlyでこのバグが発生しないようになっています。

もし、Firefox 17で、このバグに困っている方が居る場合は、Firefox 18 ベータ版への一時的な移行を促すと良いかも知れません。ベータ版への移行が難しい場合は、今まで通り、キャッシュを消してもらって、一時的に症状を押さえ込むしかありません。

ちなみに、キャッシュファイルの閉じ忘れ箇所が新たに指摘されているので、それでもまだ発生する可能性はありますが、ここ最近のNightlyを使っている限りは、よほどシチュエーションが限定されるのではないかと感じます。

どちらにしろ、長引いたこのバグも、ようやく収拾の目処がたってきたという感じですね。