OpenAI Codex ロギングバグ:過剰な SSD 書き込みと回避策
OpenAI Codex ロギングバグ:過剰な SSD 書き込みと回避策
OpenAI Codex のロギングバグが過剰な SSD 摩耗を引き起こす
A critical bug in OpenAI Codex は、アプリケーションがローカル SSD に大量のデータ(潜在的にテラバイト単位)を書き込む原因となっています。この問題は、アプリケーションがデフォルトで trace/debug ロギングを有効にした状態で提供されており、ログローテーションや容量制限のない、制限のない SQLite データベースを使用していることに起因します。
技術的な根本原因:制限のない SQLite Trace Logs
パフォーマンスの低下とディスク消費は、SQLite データベースに書き込まれる trace レベルのログの「firehose(大量のデータ流)」によって引き起こされます。ロギングシステムがローテーションやサイズ制限を実装していないため、ログファイルは無限に増大し、利用可能なディスクスペースを消費し、SSD ハードウェアの摩耗を増加させます。
ユーザーは、アプリケーションがアイドル状態であってもこの動作が発生する場合があると報告しています。あるユーザーは、SQLite ログファイルに対して VACUUM FULL コマンドを実行したところ、サイズが 27GB から 73MB に減少したと述べており、現在のロギング実装の極端な非効率性を浮き彫りにしています。
即時の回避策と修正方法
公式のアップデートが提供されるまで、ユーザーはさらなるディスク書き込みを防ぐために以下の技術的な回避策を利用できます:
SQLite Trigger Block
一時的な修正方法として、logs テーブルへのさらなる insert をブロックする SQLite trigger を作成することが挙げられます。Codex のログデータベースに対して、以下のコマンドを実行できます:
sqlite3 ~/.codex/logs_2.sqlite "CREATE TRIGGER IF NOT EXISTS block_log_inserts BEFORE INSERT ON logs BEGIN SELECT RAISE(IGNORE); END;"
Filesystem Redirection
物理的な SSD 摩耗を防ぐために、一部のユーザーはログディレクトリを tmpfs (RAM-backed filesystem) にシンボリックリンクで接続することを提案しています。これにより、ログが永続的なストレージではなく、揮発性のメモリに書き込まれるようになります。
コミュニティのフィードバックとパフォーマンスに関する懸念
ロギングバグ以外にも、コミュニティは Codex に関するいくつかの他の安定性とパフォーマンスの問題を指摘しています:
- GPU Resource Exhaustion: macOS 上で Codex のウィンドウを非表示にしていないだけで、「spinner」ローディングメッセージのレンダリングにより、GPU 使用率が 100% になる可能性があるとの報告があります。
- Input Latency: ユーザーは、Claude Code のような競合製品と比較して、大幅なタイピング遅延が発生すると報告しています。
- Cross-Tool Issues: 他の AI コーディングツールでも同様のロギング問題が報告されており、あるユーザーは Claude Code も
~/.claude/logsに大量の debug ログを書き込むと述べています。
現在のステータス
コミュニティの報告によると、修正が Codex のリポジトリ (commit e98d43ac372ddf7f513c0...) にコミットされており、次回の公式リリースに含まれる予定です。ユーザーは、アップデートのために公式の GitHub リポジトリを監視することをお勧めします。