Handle exceptions when flushing WAL #3283
Merged
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.
Unhandled exceptions in the Database destructor can't be easily handled in the rust API, and even in the C++ API it may cause terminate to be called, which is not very user-friendly and will bypass other error reporting mechanisms.
I'm not entirely sure why this is only occurring in the one rust test on windows.
Perhaps
fsync
doesn't produce an error if run on a file opened read-only, whileFlushFileBuffers
does, explaining why it only happens on Windows, but there is a similar test for the C API:CAPIDatabaseTest.CreationReadOnly
, which doesn't have the same problem. But at the least, this will fix CI and make the issue easier to debug and we can open an issue for the rest.I also removed some unnecessary code from a different rust test which had been producing warnings.