У Codex знайшли баг із логами: інструмент міг за рік записати 640 ТБ даних на SSD
У репозиторії OpenAI Codex на GitHub користувач знайшов проблему з локальними логами Codex CLI. За його спостереженнями, інструмент постійно записував великий обсяг даних у SQLite-базу ~/.codex/logs_2.sqlite та пов’язані з нею файли -wal та -shm.
Автор issue помітив, що після приблизно 21 дня роботи системи на SSD було записано близько 37 ТБ даних. Він перевірив активність на рівні процесів та файлів — основним джерелом постійного запису виявилися саме SQLite-логи Codex.
У перерахунку на рік це давало приблизно 640 ТБ запису. Для порівняння, деякі споживчі SSD на 1 ТБ мають ресурс близько 600 ТБ запису за весь гарантійний строк.
Проблема була не лише в розмірі самого файлу бази. У прикладі автора logs_2.sqlite займав близько 1,2 ГБ та зберігав приблизно 0,5 млн рядків, але лічильник SQLite AUTOINCREMENT уже перевищив 5,5 млрд. Це вказувало на великий обсяг історичних записів. Рядки постійно додавалися, потім видалялися, але все одно проходили через WAL, індекси, перезапис сторінок та файлову систему.
В одному
На думку автора, причиною було занадто шумне логування. SQLite feedback log sink мав глобальний рівень TRACE за замовчуванням. Через це в базу потрапляли низькорівневі dependency-логи, дзеркальні OpenTelemetry-події та raw WebSocket/SSE payloads. У його вибірці TRACE займав понад 70% збережених байтів, а codex_otel.log_only та codex_otel.trace_safe разом додавали ще приблизно 25%.
Після обговорення проблему вирішили. Один PR прибрав логування кожного успішного Responses WebSocket payload на TRACE та дублювання в OpenTelemetry, другий відфільтрував шумні persistent log targets. Автор каже, що ці зміни можуть прибрати близько 85% логів у його сценарії.
Стикалися з подібними проблемами? Чи перевіряєте, скільки місця на диску займають AI-інструменти та наскільки активно пишуть дані у фоні?
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарівКлод теж любить багато писати.
www.linkedin.com/...-i-stopped-malenko-jgdqf