В июне 2026 года в репозитории OpenAI Codex появился баг-репорт, который быстро стал одним из самых обсуждаемых. Пользователь обнаружил, что Codex непрерывно пишет огромный объем диагностических логов в локальную SQLite-базу и потенциально способен записывать до 640 ТБ данных в год на SSD. Через неделю проблема была признана и исправлена двумя PR.
Что произошло
Автор заметил аномально высокий износ диска:
-
за 21 день SSD записал около 37 ТБ данных;
-
основным источником записи оказался Codex;
-
логи сохранялись в SQLite-файлы:
-
logs_2.sqlite -
logs_2.sqlite-wal -
logs_2.sqlite-shm
-
Если экстраполировать эти цифры на год, получается около 640 ТБ записи, что сопоставимо или даже превышает ресурс многих потребительских SSD на 1 ТБ.
Самая интересная находка
Размер базы составлял всего около 1.2 ГБ, однако счетчик записей SQLite показывал более 5.5 миллиардов вставок. При этом реально в базе оставалось лишь около 500 тысяч строк.
Это означает, что система постоянно:
-
записывала новые логи;
-
записывала новые логи;
-
индексировала их;
-
писала данные в WAL;
-
удаляла старые записи;
-
снова записывала новые.
То есть происходило классическое write amplification — огромный объем физической записи ради относительно небольшого количества сохраняемых данных.
Что именно генерировало трафик
Анализ логов показал довольно типичную проблему инженерии observability:
|
Источник |
Доля |
|---|---|
|
TRACE-логи |
~71% |
|
OpenTelemetry mirror logs |
~25% |
|
Остальное |
~4% |
Основными виновниками стали:
-
логирование WebSocket-сообщений;
-
SSE-события;
-
внутренние сообщения tokio;
-
inotify-события файловой системы;
-
OpenTelemetry-трейсы;
-
сетевой транспортный слой.
Фактически в SQLite сохранялось почти всё подряд на уровне TRACE.
Корневая причина
Проблема оказалась удивительно простой. Для SQLite-логирования был установлен глобальный уровень:
Targets::new().with_default(Level::TRACE)
То есть система сохраняла практически любые внутренние события, включая низкоуровневые сообщения библиотек и сетевых протоколов. Это хороший пример того, как настройки, полезные для отладки, случайно попадают в production и начинают создавать огромные накладные расходы.
Почему это важно не только для Codex
Сам инцидент гораздо интереснее конкретного бага. Он показывает типичную проблему современных AI-агентов:
1. Агент — это не просто LLM
Сегодняшний агент состоит из множества подсистем:
-
модель;
-
терминал;
-
файловая система;
-
телеметрия;
-
логи;
-
контекст;
-
память;
-
WebSocket-коммуникации;
-
плагины и инструменты.
Большая часть инженерных проблем возникает именно вокруг этих компонентов, а не вокруг самой модели. Это подтверждают и исследования багов AI-агентов: более трети проблем связаны с интеграциями, инфраструктурой и конфигурацией, а не с качеством генерации кода. (arXiv)
2. AI-инструменты создают новые классы багов
В комментариях сообщества обсуждались последствия:
-
быстрый износ SSD;
-
переполнение дисков;
-
деградация производительности;
-
ошибки при долгих сессиях;
-
проблемы с памятью;
-
зависания интерфейса. (Reddit)
Причем многие связанные issue в Codex касаются именно:
-
контекст-компактации;
-
логирования;
-
WAL-файлов;
-
фоновых процессов;
-
утечек ресурсов.
3. Чем сложнее агент — тем важнее классическая инженерия
На фоне хайпа вокруг вайб-кодинга этот кейс выглядит особенно показательным. LLM прекрасно пишет код, но:
-
кто-то должен проектировать телеметрию;
-
кто-то должен ограничивать логирование;
-
кто-то должен контролировать потребление ресурсов;
-
кто-то должен понимать работу SQLite, WAL и файловой системы.
Именно поэтому востребованными остаются инженеры, а не просто пользователи AI.
Чем всё закончилось
22 июня автор закрыл issue. Команда OpenAI оперативно внесла два изменения:
-
отключила логирование каждого WebSocket-события;
-
отфильтровала наиболее шумные источники логов.
По словам автора, это позволило сократить объем логирования примерно на 85%.
Вывод
История с Issue #28224 — не просто баг про SQLite. Это хороший пример того, что основные проблемы AI-агентов сегодня лежат не в области генерации кода, а в области классической software engineering:
-
управление ресурсами;
-
наблюдаемость;
-
телеметрия;
-
производительность;
-
работа с диском и памятью.
Чем мощнее становятся AI-агенты, тем важнее становятся инженеры, которые понимают, как работают системы под капотом. И этот кейс отлично показывает, почему эпоха «просто попросил ИИ написать приложение» пока не отменяет необходимость разбираться в технологиях.
ссылка на оригинал статьи https://habr.com/ru/articles/1050836/