On 2026-03-03, one of the SQLite developers (Dan) found and fixed a bug that could, in rare cases, lead to database corruption.
and
The developers have never been able to reproduce the bug organically and had to add special testing logic to SQLite that deliberately triggers the circumstances of the the bug in order to verify that the issue has been fixed.
I very much had the impression that this was a nearly-theoretical race condition discovered by formal methods or some kind on intensive testing. There was no mention that this was discovered by a user who experienced 19 prod corruption incidents, but I guess I missed the implication of:
the problem has never been observed during development and testing
I'm guessing our professional services contract came with some form of NDA that required being evasive? At least until this blog post, I suppose, good times.
I would be incredibly frustrated to have to deal with such a bug but then again under scale you're going to find this kind of behaviour in pretty much every system you use.
[OP] pushcx | a day ago
When the release notes wrote
and
I very much had the impression that this was a nearly-theoretical race condition discovered by formal methods or some kind on intensive testing. There was no mention that this was discovered by a user who experienced 19 prod corruption incidents, but I guess I missed the implication of:
danderson | 23 hours ago
I'm guessing our professional services contract came with some form of NDA that required being evasive? At least until this blog post, I suppose, good times.
vetch | 10 hours ago
Works on my machine(s).
ag | 21 hours ago
Well written, with the classic Canadian "sorry" while incredibly fixing a decade old bug.
JulianWgs | 9 hours ago
Really cool engineering effort!
The only thing that makes me sad is that they relied on sqlite for quite some time, but only became a customer after they had problems.
alper | an hour ago
I would be incredibly frustrated to have to deal with such a bug but then again under scale you're going to find this kind of behaviour in pretty much every system you use.
radex | 11 minutes ago
The choice of using SQLite on backend seems odd to me. Why are they doing that?