오픈AI(OpenAI)가 ChatGPT 데이터 인프라의 핵심 구성 요소인 Rockset 서비스에서 발생한 반복적 충돌 문제를 분석한 기술 사례를 공개했다. Rockset는 오픈AI가 2024년 인수한 클라우드 데이터 시스템으로, ChatGPT의 대화 내역 검색과 데이터 플러그인 연동에 핵심적인 역할을 담당한다. 이 서비스는 성능 최적화를 위해 C++ 언어로 작성돼 있는데, 수개월 전부터 정상적으로 실행된 함수가 실행 완료 후 비정상적인 메모리 주소로 복귀하며 프로그램이 강제 종료되는 현상이 관찰됐다.
개발팀은 초기 분석에서 스택 포인터 레지스터(%rsp)가 8바이트 어긋나거나 복귀 주소 슬롯이 NULL로 덮여 있는 패턴을 확인했으나 원인을 특정하지 못했다. 기존 디버깅 방식인 코어 덤프 파일 소수 건 심층 분석으로는 한계가 있었고, 로그 기반 분류도 스택 손상 특성상 위양성과 위음성이 뒤섞여 신뢰할 수 없었다. 팀은 접근 방식을 전환해 전체 크래시 모집단을 대상으로 데이터를 수집하고 패턴을 추출하는 역학 조사(epidemiology) 방법론을 적용했다. 개별 사례를 깊이 파는 대신 크래시 전체의 통계적 특성에서 단서를 찾는 방식이다.
이 과정에서 서로 무관한 두 가지 버그가 동시에 존재했음이 드러났다. 첫 번째는 특정 Azure 호스트 한 대에서 CPU가 연산을 정상적으로 처리하지 못하는 ‘조용한 하드웨어 오류’였다. 여러 리전과 여러 하드웨어 유형에서 크래시가 관찰됐기 때문에 초기에 하드웨어 결함 가능성을 배제했던 것이 오판이었다. 두 번째는 GNU libunwind 라이브러리의 18년 된 경쟁 조건(race condition) 버그였다. GNU libunwind는 전 세계 C++ 프로그램에서 광범위하게 사용되는 오픈소스 라이브러리로, 신호 처리와 스택 언와인딩이 동시에 발생하는 특정 조건에서 잘못된 동작을 일으키는 결함이 18년간 발견되지 않은 채 유지돼 온 것이다. 오픈AI는 이 발견을 오픈소스 커뮤니티에 보고했다.
이번 사례는 대규모 AI 서비스 인프라에서 버그 진단이 얼마나 복잡한 양상을 띠는지를 잘 보여준다. 불가능해 보이는 버그도 충분한 데이터와 체계적인 집단 분석을 통해 풀릴 수 있다는 점, 그리고 하드웨어 오류와 소프트웨어 버그가 동시에 발현되면 조사 방향을 혼란시킨다는 교훈이 담겼다. 오픈AI는 이 경험을 바탕으로 고품질 크래시 데이터셋 구축과 집단 수준의 패턴 분석 역량이 신뢰성 높은 데이터 인프라 운영에 필수적이라고 밝혔다.














