Tailscale、16年前のSQLiteバグによるDB障害を特定

原題: Tailscale Traces Database Corruption to 16y/o SQLite WAL-Reset Bug

なぜ重要か

広く利用されるSQLiteの深部に潜伏していた16年来のバグが実運用で顕在化した事例として、インフラ信頼性設計とOSSの品質管理の観点から業界全体への示唆が大きい。

ネットワークサービスのTailscaleは2026年8月12日、昨年末から続いた複数の障害の原因が、SQLiteに16年間潜伏していたWALリセットのバグであったと公式ブログで発表した。同社は数か月にわたる詳細な調査を経てバグを特定・修正済みであり、顧客への影響と対応経緯を公開した。

Tailscaleは2026年8月12日、公式ブログにて昨年末から今年初頭にかけて発生した断続的なサービス障害の根本原因を明らかにした。障害の多くは、SQLiteのWAL(Write-Ahead Logging)リセット処理に存在した16年前のバグに起因していたという。

同社の制御プレーン(controlplane.tailscale.com)は、内部的に複数のコーディネーションサーバー(シャード)に分割されており、各テールネット(ユーザーのプライベートネットワーク)はいずれか1つのシャードに存在する。各シャードでは単一のGoプロセスがSQLiteデータベースに排他的にアクセスするという、SQLiteが本来想定する「シングルライター」設計を採用している。

Tailscaleは2022年からSQLiteをプライマリデータベースとして採用している。SQLiteは「枯れた技術」として信頼性が高く、より大規模な環境でも多くの企業が問題なく利用していることから採用を決定した経緯がある。バックアップには数分ごとにデータベースの完全スナップショットを取得し、SQLiteファイル全体をAmazon S3にアップロードするパイプラインを使用している。

同社によれば、障害の調査には数か月を要し、最終的にSQLiteのWALリセット処理における長年の潜在バグが原因であることを突き止めた。同社はこのバグの特定にも貢献したと述べている。現在は修正が完了しており、サービスの安定性は回復しているという。

Tailscaleは「顧客は信頼できるサービスを期待しており、数か月にわたってその期待に応えられなかったことを申し訳なく思う」と謝罪したうえで、再発防止への取り組みとして今回の詳細な技術的経緯を公開した。

出典

tailscale.com — 元記事を読む →