コンテナの終了コード137は、しばしばメモリ不足(OOM)と誤診され、チームがリソースを早急に拡張してしまう原因になります。この実践的なデバッグ事例では、本番コンテナが終了コード137で繰り返し終了し、最初はOOMが疑われました。しかし、終了コードの意味を詳しく調べると、137は128にシグナル9(SIGKILL)を加えたものであり、ホストの再起動など様々な条件で発生し得ることがわかります。著者はホストのログを体系的に確認し、基盤となるサーバーが予期せず再起動しており、その結果すべてのコンテナが強制終了されていたことを発見しました。この事例は、Linuxの終了コードの規約を理解し、結論を急ぐ前にホストレベルのイベントを確認することの重要性を強調しています。DevOpsやSREチームにとって、コンテナの終了コードをシステムレベルのログやメトリクスと関連付けて確認することの価値を再認識させる内容です。
本番コンテナが終了コード137で頻繁に落ちる問題を、OOMと誤診せずに、終了コードの意味(128+9=SIGKILL)を分解して調査し、ホストの再起動が原因であることを突き止めた実践的なデバッグ事例。