SQLite의 15년 묵은 WAL 버그, Antithesis로 15분 만에 잡다

Breaking the WAL

SQLite의 WAL(Write-Ahead Logging) 서브시스템에 2010년부터 존재하던 WAL-Reset 버그가 올해 초 수정되었습니다. Antithesis의 엔지니어 Carl은 Claude에게 Antithesis를 사용하는 방법을 가르친 후, 휴가 중에 스마트폰으로 SQLite 3.51.2에 계측 코드를 추가하고 간단한 워크로드를 실행했습니다. 그 결과 첫 실행에서 15분 만에 버그를 재현했고, 수정된 3.51.3에서는 문제가 해결되었음을 확인했습니다. Tailscale은 이 버그로 6개월간 불안정한 서비스를 겪었고, SQLite 팀과 함께 수 주간 버그를 추적한 끝에 수정을 완료했습니다. Antithesis는 인과 분석과 결정적 타임트래블 디버깅을 제공하여 버그 원인을 빠르게 찾을 수 있습니다.

이 버그는 타이트한 타이밍 제약을 가진 데이터 레이스로, 일반적인 사용에서는 발생할 가능성이 낮습니다. 개발자들은 유기적으로 버그를 재현한 적이 없으며, 버그의 상황을 의도적으로 유발하는 특수 테스트 로직을 SQLite에 추가해야만 수정을 검증할 수 있었습니다.

같은 날의 다른 소식

2026-08-12