Tailscale, 16년 묵은 SQLite WAL 버그로 데이터베이스 손상 추적
Tailscale Traces Database Corruption to 16y/o SQLite WAL-Reset Bug
Tailscale은 지난해 말부터 올해 초까지 반복된 데이터베이스 손상으로 인한 가동 중단을 겪었습니다. 원인은 SQLite의 오래된 버그였으며, 6개월간 19차례의 손상 사고를 겪은 끝에 찾아냈습니다. 이 버그는 WAL(Write-Ahead Log) 체크포인트 과정에서 발생했으며, 커밋된 트랜잭션의 데이터가 사라지는 문제를 일으켰습니다. Tailscale은 SQLite 개발자들과 협력하여 버그를 수정했고, 이 과정에서 SQLite의 새로운 디버깅 도구 개발에도 기여했습니다.
커밋된 트랜잭션으로 기록된 데이터가 오류 없이 허공으로 사라졌습니다. 그런 일은 불가능해야 합니다.