これまで見た中で最も奇妙なバグ
(engineering.gusto.com)奇妙なバグの発見と解決の過程
- 内部ツールチームのオンコール対応中に、Gusto の内部ソフトウェアを使うユーザーが Chrome ブラウザのクラッシュを経験した。
- この問題はカスタマーサービスにさまざまな支障をもたらした。
- 問題解決のために、経験豊富な同僚、プロダクトインフラチーム、IT チームの支援を受けた。
最初の手がかり
- 影響を受けたユーザーに共通点がないか探した。
- すべての Gusto 社員が影響を受けたわけではなく、顧客向けソフトウェアには問題がなかった。
- 他の内部ソフトウェアの Web ページは正常に動作した。
- クラッシュは一貫性なく発生し、Safari や Firefox では問題が起きなかった。
2つ目の手がかり
- Chrome のバージョンが問題かもしれないという仮説を立てた。
- 一部のユーザーは Chrome のバージョンを更新すると問題が解決したように見えたが、完全には解決しなかった。
- Chrome 拡張機能が原因かもしれないと推測したが、拡張機能なしでも問題は再現した。
バグ再現の難しさ
- インフラチームが全エンジニアに問題の再現を依頼した。
- トルコの 2 人のエンジニアを除き、エンジニアチームからはクラッシュの報告がなかった。
- Chrome のクラッシュレポート機能がセキュリティ上の理由で無効化されており、問題解決は困難だった。
幸運な転機
- デンバーのあるエンジニアが、Grammarly のデスクトップアプリをダウンロードした後に問題が発生したと報告した。
- Grammarly アプリを削除してコンピューターを再起動すると問題が解消することが分かった。
進展
- デバッグが可能になると、原因を特定するためにさまざまな試みを行った。
- 主要な内部アプリケーションは ActiveAdmin を基盤に構築されていたが、React を使う新しい部分ではクラッシュしなかった。
- 共通コード部分を調査する中で、
My Historyのドロップダウンメニューが原因であることを突き止めた。
問題解決
loader-spinner.gif画像ファイルが問題を引き起こしていることが確認された。- その GIF を別の画像に置き換えると、ページはそれ以上クラッシュしなくなった。
- Grammarly か Chrome のどちらかが問題を修正したのか、今では元の GIF でも Chrome はクラッシュしなくなっている。
結論
- 予想外のアニメーション GIF がデバッグの答えだった。
- 好奇心と協力によって問題を解決した。
- Gusto では、協調的で好奇心旺盛な人々と一緒に働ける機会がある。
GN⁺ の意見
この文章で最も重要なのは、予想外の原因によるバグを発見し解決するまでの過程が詳しく描かれている点だ。ソフトウェアエンジニアリングの複雑さと予測不能さを示すとともに、チームワークと粘り強い問題解決力がいかに重要かを強調している。エンジニアリングチームがどのように協力して難解な問題を解決するのかを示す興味深い事例であり、この分野に関心のある人にとって非常に魅力的な話になっている。
1件のコメント
Hacker Newsの意見
特定のGIFファイルが原因で発生するバグへの驚きと疑念
大学教授の研究論文作業中に発生した下線印刷の問題
Grammarly関連のバグ体験の共有
バグ修正への失望の表明
WindowsとLinuxのデュアルブート時のオーディオ問題
2023年のWeb環境で発生するバグへの興味
Chromeのアクセシビリティツールに関連するバグ体験の共有
ページ翻訳設定による混乱の共有
WebサイトのCSSによるLinuxデスクトップクラッシュ体験の共有
バグ解決が重要なセキュリティ脆弱性になり得るという意見