Provide the correct context for database lock acquisition #601
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.