OpenAI 엔지니어들은 Rockset 데이터 인프라에서 설명할 수 없는 C++ 크래시를 두 가지 원인을 식별하여 해결했습니다: Azure 호스트의 침묵하는 하드웨어 손상과 GNU libunwind의 18년 된 레이스 컨디션.
- 크래시는 가짜 주소로 반환하거나 정렬되지 않은 스택 포인터를 포함했으며, 이는 표준 소프트웨어 디버깅 가설을 거부합니다.
- 초기 분석은 증거 부족으로 인해 애플리케이션 코드 버그, 컴파일러 문제 및 커널 신호 전달 문제를 배제했습니다.
- 연구자들은 코어 덤프와 x86_64 레드 존을 활용하여 사후 크래시 분석을 위해 비활성 스택 프레임을 보존했습니다.
- 조사팀은 개별 사례가 아닌 집단 수준의 크래시 데이터를 분석한 후 단일 원인이 아닌 두 개의 무관한 버그로 조사가 전환되었습니다.
이 접근 방식은 크래시를 역학적 문제로 취급하는 것이 전통적인 디버깅 방법에서 놓치는 드물고 복잡한 실패를 식별할 수 있음을 보여줍니다.