Tailscale、16年前のSQLiteバグによるDB破損を報告
मूल शीर्षक: Tailscale Traces Database Corruption to 16y/o SQLite WAL-Reset Bug
यह क्यों महत्वपूर्ण है
広く使われているSQLiteに16年間潜伏していたバグの発見は、同技術を採用する多くのサービスにとって重要なセキュリティ・信頼性上の示唆を持つ。
Tailscaleは2026年8月12日、昨年末から続いたサービス障害の原因が16年前から存在するSQLiteのWALリセットバグであったと公式ブログで発表した。数ヶ月の調査を経てバグを特定・修正し、顧客への影響を謝罪した。
Tailscaleは公式ブログにて、昨年末から新年にかけてサービスの稼働率が不安定だった原因を詳細に説明した。複数の障害は、SQLiteデータベースに16年間潜伏していたWAL(Write-Ahead Logging)リセットに関するバグに起因していた。
Tailscaleの内部アーキテクチャでは、クライアントは単一の公開エンドポイント(controlplane.tailscale.com)に接続するが、内部では複数の「シャード」と呼ばれる調整サーバーに分割されている。各tailnetは1つのシャードに配置され、各シャードはSQLiteデータベースを持つ。単一のGoプロセスがそのデータベースに排他的にアクセスする設計で、SQLiteの推奨される使用方法に従っている。
Tailscaleは2022年からSQLiteをメインデータベースとして採用しており、信頼性が高く広く使われている「枯れた技術」として選択していた。バックアップは数分ごとにデータベース全体のスナップショットを取得し、S3バケットにアップロードする仕組みを採用している。
同社は数ヶ月にわたる徹底的な調査(フォレンジック)の末、このSQLiteの深部に潜むバグを特定することに成功した。現在は修正済みであり、バグの内容と対応策を業界に共有するため本記事を公開したとしている。顧客への期待に応えられなかった期間について、同社は正式に謝罪している。