PCでアプリケーションを動かしている時に、何らかの理由でアプリケーションの動作が突然止まってしまい、再起動したことがあるという人は多いはず。Mozillaが開発するウェブブラウザではクラッシュ時に「クラッシュレポーター」が起動してレポート時の状況を伝えることができますが、状況によってはそれすらも起動しないこともあります。そんな時に原因を突き止めてFirefoxの開発陣に報告する方法を、Firefoxの開発者がソーシャルニュースサイトのHacker Newsで解説しています。

Since upgrading to 118 I've had random hangs of firefox every few days. Not clea... | Hacker News

https://news.ycombinator.com/item?id=38087817



Hacker Newsユーザーのta1243氏によると、バージョン118にアップグレードしてから、Firefoxが数日おきに不定期にハングアップするようになったとのこと。ハングアップが起こると、すべてのウィンドウがフリーズしてしまうため、「killall firefox」とコマンドを打つことで強制終了させなければならないそうです。ta1243氏は、この現象についてインターネットで検索しても検索エンジンがまともに機能していないために関連する情報を見つけることができない、と述べています。



このta1243氏の書き込みに対し、Mozillaのメディア開発者でFirefoxの開発にも携わるpadenot氏が診断方法を紹介しています。

まず、Linux環境でFirefoxが完全にフリーズしてしまっている場合、おそらく親プロセスに問題があるとpadenot氏は指摘しています。この親プロセスとはFirefoxのタブを管理するプロセスのことで、クラッシュレポートが有効になっている場合、SIGABRTで親プロセスを強制終了すると、「about:crashes」にエントリが作成され、再起動後にそのエントリを検索して送信することができるとのこと。



また、GDBとdebuginfodを含むディストリビューションを使っている場合、GDBをFirefoxの親プロセスにアタッチしてシンボルをダウンロードし、その上で「thread all apply bt」を実行すると、親プロセスのすべてのスレッドのスタックがダンプされるとのこと。

クラッシュに関する情報が得られたら、使用しているディストリビューションのバグトラッカーにチケットを作成するか、Mozillaが公開しているウェブベースのバグ管理システム・Bugzillaにログインし、状態とFirefoxのバージョン、クラッシュレポート、「about:support」で表示されるトラブルシューティング情報などの情報を添付し、Firefox開発陣に直接連絡すればOKだとのこと。



padenot氏は「LinuxでFirefoxがフリーズするケースは、Firefoxとデスクトップ環境の間のバグやグラフィックドライバーのバグによって引き起こされ、スタックによって問題を大きく絞り込むことが可能です」と述べています。