openai

OpenAI нашла 18-летний баг в libunwind, ломавший ChatGPT

Promtime

openai

Несколько месяцев инженеры OpenAI расследовали загадочные краши в Rockset, C++-сервисе для поиска по данным в инфраструктуре ChatGPT. Функции аварийно возвращались по NULL-адресу или со смещённым указателем стека, что не объяснялось ни одной гипотезой.

Чистый разбор всех core-дампов за год показал, что это два разных бага. Первый: одна машина в Azure с битым CPU, который неверно считал. Второй: гонка в GNU libunwind, присутствующая с первой x86_64-версии 18 лет назад.

Окно гонки шириной в одну инструкцию, около 100 пикосекунд: если сигнал SIGUSR2 приходит сразу после смены %rsp, ядро затирает структуру ucontext_t, и указатель команд обнуляется. OpenAI переключилась на unwinder из libgcc и отправила фикс в апстрим.

Комментарии

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.

Из Google мы используем только имя и аватар. Почту не сохраняем.