Codex 被曝日志写盘 Bug 后,我做了一次本地自查和止血
内容提要
最近发现Codex Desktop存在严重Bug,导致SQLite日志频繁写入。TRACE级别日志占多数。建议通过配置文件关闭SQLite日志或使用触发器拦截写入。清空历史日志后,数据库大小显著减少,写入已停止。
关键要点
-
Codex Desktop 存在严重 Bug,导致 SQLite 日志频繁写入,主要是 TRACE 级别日志。
-
检查 SQLite 日志文件大小和日志级别分布,以确认是否受到影响。
-
推荐通过配置文件关闭 SQLite 日志,方法是在 ~/.codex/config.toml 文件中添加 sqlite_logs_enabled = false。
-
可以使用 SQLite 触发器拦截日志写入,创建触发器以静默丢弃新日志。
-
清空历史 TRACE 日志后,数据库大小显著减少,写入已停止。
延伸解读
日志写入的潜在风险
Codex Desktop 的 SQLite 日志频繁写入可能导致磁盘空间迅速消耗,影响系统性能。用户应定期检查日志文件大小,确保不会因日志积累而造成存储问题。
关闭日志的配置方法
通过编辑配置文件关闭 SQLite 日志是解决问题的有效方法。用户需确保将配置项放在文件的顶层,以避免影响其他应用程序的运行。
使用触发器的应急措施
如果用户急需停止日志写入,可以通过创建 SQLite 触发器来拦截日志插入。这种方法可以立即生效,适合于需要快速解决问题的用户。
延伸问答
Codex Desktop 的 SQLite 日志频繁写入的原因是什么?
Codex Desktop 存在严重 Bug,导致 TRACE 级别日志频繁写入,主要集中在底层网络日志。
如何确认我的 Codex 是否受到 SQLite 日志写入 Bug 的影响?
可以检查日志文件大小和日志级别分布,使用 sqlite3 查询最近 500 条日志的级别分布。
如何关闭 Codex 的 SQLite 日志?
编辑 ~/.codex/config.toml 文件,添加 sqlite_logs_enabled = false,并确保放在顶层。
如果想立即停止日志写入,有什么快速解决方案?
可以创建 SQLite 触发器拦截日志写入,使用 CREATE TRIGGER 语句来静默丢弃新日志。
清空历史 TRACE 日志后,数据库大小会有什么变化?
清空历史 TRACE 日志后,数据库大小显著减少,例如从约 4.2MB 降至 40KB。
如果我以后想恢复 Codex 的日志,应该怎么做?
移除配置 sqlite_logs_enabled = false,并删除触发器,然后重启 Codex Desktop。