Hunting a 16-year-old SQLite bug with TLA+: is dqlite affected?

A Canonical post that models a SQLite bug in TLA+ to test dqlite.

Author
Marco Manino and Alberto Carretero, dqlite team at Canonical
Published
25 June 2026
Kind
Company engineering blog post with a worked model-checking example
Original
ubuntu.com/blog/hunting-a-16-year-old-sqlite-bug-with-tla-is-dqlite-affected
Subject
Checkable specs for coding agents
Themes
Checking the work, How things break

What it is

Marco Manino and Alberto Carretero are on the dqlite team at Canonical. The post explains a SQLite checkpoint bug. It then builds two TLA+ models, one for SQLite and one for dqlite.

What it says

What evidence it gives

The evidence is a TLA+ model with a model-checker run. The run found a counterexample for SQLite and none for dqlite. The post shows C code excerpts and spec fragments. The full specification is linked in a gist.

Interests and limits

Canonical makes dqlite, so the team has an interest in the answer. The model is a simplified abstraction without readers. The conclusion covers one bug and two models. The long C code and TLA+ fragments were skimmed, not read line by line.

Connections

These links are this wiki's own reading, not claims the sources make.