This repository has been archived by the owner on Feb 12, 2024. It is now read-only.
fix: race condition causing Database is not open error #1834
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.
cleanup
closes the DB butyargs-promise
does not wait for async stuff in the command handler to finish, and executes that promise chain immediately after the handler is executed. So it's a race condition. In windows, sometimes, the database is closed before the async stuff from the handler completes.This PR changes the CLI command handlers to always pass a promise to
resolve
function thatyargs-promise
adds to the context (argv
). This makesyargs-promise
wait for it to be resolved before continuing the promise chain and closing the DB.Since I had to edit all of the commands to make them use the
resolve
function and introduce promises, I decided to take the opportunity to refactor the CLI commands to use async/await. It should help towards #1670.Also, w00t! - removed almost 200 LOC