The problem is that a DB context was being used to acquire a database lock when doing the last sync on database Close. At that point in time, the DB context has already been cancelled, hence this last sync could fail and produce an error "error closing db".
I think this is a concurrency issue, but I could not replicate it locally. However, we have been using Litestream in production at work, and probably because our VMs are much less computationally capable (1 CPU, 512MB RAM), this bug was very apparent.
Below are our logs from production. We shipped this change on Aug 7 at 1PM, and no errors since.
The problem is that a
DB
context was being used to acquire a database lock when doing the last sync on databaseClose
. At that point in time, theDB
context has already been cancelled, hence this last sync could fail and produce an error"error closing db"
.I think this is a concurrency issue, but I could not replicate it locally. However, we have been using Litestream in production at work, and probably because our VMs are much less computationally capable (1 CPU, 512MB RAM), this bug was very apparent.
Below are our logs from production. We shipped this change on Aug 7 at 1PM, and no errors since.