This repository has been archived by the owner on Jul 12, 2022. It is now read-only.
fix(logging): Prevent IO ex concurrent writes #1057
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.
✨ What kind of change does this PR introduce? (Bug fix, feature, docs update...)
Bug fix.
File.AppendText
takes an exclusive write lock on a file. This meansthat when multiple writes are occurring at the same time, an
IOException
is thrown saying: "The process cannot access the file Xbecause it is being used by another process".
💥 Does this PR introduce a breaking change?
No.
This fix will only work as long as the logger is used as a "singleton" throughout the application as the lock is not a static property. I decided against making it static because the constructor has file path as a parameter.
🐛 Recommendations for testing
Use
--logfile
. This caused issues especially in the package update lookup process as it's parallelized.