Tailscale、16年前のSQLite WALリセットバグによるデータベース破損を追跡
Tailscale Traces Database Corruption to 16y/o SQLite WAL-Reset Bug
Tailscaleは、制御プレーンのシャードで使用するSQLiteデータベースに断続的な破損が発生し、6か月間に19回のインシデントを経験しました。原因は16年前に遡るSQLiteのWALリセットバグで、チェックポイント処理中にページが正しくコピーされず、データの消失や破損を引き起こしていました。TailscaleはSQLite開発者と協力し、フォレンジックテレメトリとトランザクションログのリプレイによりバグを特定し、修正しました。
あるトランザクションによって書き込まれコミットされたデータが、その後のトランザクションからは不可解にも見えなくなっていることが判明しました。エラーも出さずに、書き込みが空中に消えてしまったのです。