Fixes multiple bugs that happen due to System.IO.IOException: There is not enough space on the disk#2613
Open
DTraitor wants to merge 5 commits intolitedb-org:masterfrom
Open
Fixes multiple bugs that happen due to System.IO.IOException: There is not enough space on the disk#2613DTraitor wants to merge 5 commits intolitedb-org:masterfrom
DTraitor wants to merge 5 commits intolitedb-org:masterfrom
Conversation
2b6d31c to
7d2f618
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR fixes resource disposal issues that occur when System.IO.IOException: There is not enough space on the disk is thrown, preventing proper cleanup of database resources.
- Adds exception handling around transaction disposal to ensure the DiskReader is always disposed
- Wraps DiskService initialization in try-catch to handle disk space errors during database creation
- Uses TryCatch utility to ensure all DiskService disposal operations complete even if some fail
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| TransactionService.cs | Adds try-catch around disposal logic to ensure DiskReader cleanup |
| DiskService.cs | Adds exception handling for initialization and uses TryCatch for disposal operations |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Collaborator
|
Hey, thanks for your contribution! Unfortunately it's hard to accept such a PR without proper regression testing. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes multiple bugs that happen when there is no storage left on the device and
System.IO.IOException: There is not enough space on the disk.is thrown:DiskServicenot disposing itself in case of an exceptionDiskReadernever being disposed if an exception was thrown during transaction disposal. It led to log stream never returning to the pool and never closing a handle to the log file resulting inRebuildServicefailing to rename the log file, as well as TransactionMonitor not disposing the rest of the transactionsFixes #2286
Fixes #2614
Fixes #2615