AI Vibe Craft
← Назад к AI Vibe News

Редакция 30 июня 2026 г.

Обновлено 3 июля 2026

Новости

Два бага под одной маской: OpenAI разобрала краши Rockset с помощью ChatGPT

Инженер сравнивает схему повреждённых фреймов стека и график падений по кластерам — популяционный разбор вместо одного дампа.

В C++-сервисе Rockset, через который ChatGPT ищет данные при ответах, месяцами ловили «невозможные» падения: функция как будто возвращалась по нулевому адресу или со сбитым на 8 байт указателем стека. Команда OpenAI перешла от ручного разбора отдельных дампов к анализу всей популяции крашей за год — и нашла два несвязанных дефекта под одним симптомом.

Один дамп — тупик

Чаще всего сбой случался в DocumentTree::updateDocument. Гипотезы шли от бага в своём коде до ядра Linux — у каждой находились контрдоводы. Несколько дней команда копала один кейс: реконструировала стек по дампу, гоняла версии ChatGPT в переписке — картина всё равно не сходилась.

Весь архив вместо одного кейса

Текстовые логи не помогали: трассировки в них сами были битыми. ChatGPT написал скрипт, который скачивает начало каждого дампа из Azure Blob Storage, читает регистры и маркирует падение как return-to-null, misaligned-stack или другое. Скрипт прогнали параллельно по всем боевым дампам Rockset за прошлый год.

Паттерны всплыли сразу. Return-to-null размазан по кластерам и регионам. Misaligned-stack — только из одного региона, с чёткой датой старта и только на свежих нодах: один физический хост Azure с тихой порчей регистров, а не единый софтверный баг.

Два бага под одной маской

  • Битый хост Azure. Цепочка misaligned-stack ушла на один физический сервер; после вывода из строя такие падения исчезли.
  • 18-летняя гонка в GNU libunwind. Вторая популяция — return-to-null — оказалась гонкой в широко используемой библиотеке раскрутки стека.

Rockset собран с -fno-omit-frame-pointer и 128-байтовой red zone по AMD64 ABI — без этого читать хвост завершённых фреймов после сигнала было бы ещё сложнее. После инцидента в обработчик фатальных сигналов folly добавили состояние регистров, чтобы ловить похожие случаи уже по логам.

Источник: Core dump epidemiology: fixing an 18-year-old bug.