Fix connection errors preventing the pool from ever being opened again #244
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.
During
pool.open()it callsgrow()and if grow fails, the open fails. Which is all fine and dandy.However because
await Promise.all(toPromise)threw an exception, the pool ends up in an incorrect state of having misnumbered pendingCreates totals since the failed and closed and non-existing connections are still being marked as pending.This further causes problems as future calls to
.open()might actually succeeds even though zero connections are open causing the entire pool to enter invalid state and never grow or work again because of this little code:This patch fixes those problems as opened connections get added to the pool and failed connections don't get added to the pool.