OpenAI Codex CLI日志缺陷致SSD年写入640TB 逼近耐久极限
OpenAI 的 Codex CLI 近期曝出一个极为棘手的缺陷——日志级别配置存在漏洞。简单来说,该漏洞导致日志系统以极度精细的粒度,持续向本地 SQLite 数据库倾泻大量诊断记录,结果造成固态硬盘频繁承受高负载写入,寿命被急剧压缩。
事件起因:一位 GitHub 用户在 6 月 14 日提交反馈,称其设备磁盘占用持续异常飙升。深度排查后发现,Codex CLI 在运行过程中一刻不停地往本地 SQLite 数据库写入日志。实测数据触目惊心:设备连续运行 21 天,累计磁盘写入量高达 37 TB。按此速率推算,年化写入总量约为 640 TB。而当前主流 1 TB 消费级固态硬盘的标称总写入字节数(TBW)普遍在 600 TB 左右。换句话说,若该工具持续运行,不到一年即可将硬盘写入至报废。
根源在哪里?Codex 内置的日志采集模块默认启用 TRACE 级别——这是日志系统中信息记录最细的等级。在此级别下,程序会完整捕获所有底层操作,包括 WebSocket 原始通信数据包、系统级文件读写行为,甚至读取 passwd、ld.so.cache 等系统配置文件的常规记录也无一遗漏。统计显示,约 70% 的 TRACE 级别日志内容均为底层冗余信息,对普通用户的实际调试毫无参考价值。
更致命的是,该工具并未兼容 RUST_LOG 环境变量这一标准机制,导致用户无法通过常规方式调整日志输出等级。
好在针对 Linux 和 macOS 平台,目前有一个临时缓解方案:将 ~/.codex/logs_2.sqlite 文件创建为指向 /tmp/ 目录的符号链接,这样所有日志写入操作将被重定向到内存空间。需说明的是,该日志文件仅记录程序的底层运行轨迹,不含用户对话内容;并且由于采用内存临时区,设备重启后日志自动清空,完全不影响 Codex CLI 的正常功能与稳定性。