Инженеры OpenAI устранили необъяснимые сбои C++ в своей инфраструктуре данных Rockset, выявив две различные причины: скрытую аппаратную порчу на хосте Azure и состояние гонки (race condition) в GNU libunwind, существующее уже 18 лет.

  • Сбои включали возврат функций по недействительным адресам или с неверно выровненными указателями стека, что противоречило стандартным гипотезам программного отладки.
  • Первоначальный анализ исключил ошибки в коде приложения, проблемы компилятора и сбои доставки сигналов ядра из-за отсутствия доказательств.
  • Исследователи использовали дампы ядра и красную зону x86_64 для сохранения неактивных кадров стека с целью детального анализа после сбоя.
  • Расследование сместилось от поиска одной причины к выявлению двух независимых ошибок после анализа данных о сбоях на уровне популяции, а не изолированных случаев.

Этот подход демонстрирует, как рассмотрение сбоев как эпидемиологической проблемы позволяет инженерам выявлять редкие сложные отказы, которые упускают традиционные методы отладки.