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.
Failures during the last commit phase of WAL operation need to exit as we currently don't have a way to communicate to the SQLite client to rollback the transaction. The commit is detected by the release of the
WRITE
lock, however, SQLite doesn't handle errors from this syscall so an exit is called instead.We originally used the WAL write syscall to determine the transaction boundary, however, it is not contiguous when pages are rewritten within a single transaction so it make tracking boundaries inconsistent. We also evaluated checking the fsync syscall, however, this is not used if
PRAGMA synchronous=normal
is enabled by the client. In the long term, we should re-evaluate the use ofwrite(2)
to determine transactional boundaries in WAL mode.