Tailscale reported experiencing shaky uptime at the end of last year and into the new year, with many outages caused by a single bug deep within SQLite. The company spent months on forensics to identify the root cause.
The issue was traced to a 16-year-old bug in SQLite's Write-Ahead Logging (WAL) reset mechanism. This bug, a data race with tight timing constraints, had been present since 2010 but was previously unknown to the SQLite development team.
Tailscale's control plane, which clients interact with as a single public endpoint, is internally split into coordination servers or "shards." Each tailnet resides on one internal shard and can migrate between them. Each shard utilizes an SQLite database to store data.
The SQLite team released version 3.51.3, which includes a fix for the WAL-Reset bug. Developers noted that the bug was difficult to reproduce organically and required special testing logic to trigger the circumstances for verification.
A developer, using the Antithesis testing tool, was able to quickly identify the WAL-Reset bug in SQLite version 3.51.2, confirming its existence and the effectiveness of the fix in version 3.51.3.
Tailscale has implemented a fix for the issue and is sharing details of their findings. This contribution aims to assist the broader SQLite community in understanding and addressing this long-standing database vulnerability.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
A developer used the Antithesis testing tool to quickly identify the WAL-Reset bug in SQLite version 3.51.2, a data race issue that had existed since 2010. The bug was confirmed fixed in SQLite 3.51.3, demonstrating Antithesis's capability in uncovering complex database issues.
Tailscale experienced multiple outages due to database corruption, which was traced to a 16-year-old bug in SQLite's write-ahead logging (WAL) reset mechanism. The company has implemented a fix and is sharing details of the issue to aid the broader SQLite community.