fix(NODE-4475): make interrupted message more specific #3437
+92
−36
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.
Description
Fixes change stream retryability on 4.4 servers and lower when performing a failover.
What is changing?
This is the "quick and dirty" fix that just avoids pushing a
null
to the readable cursor stream before callingdestroy
on the stream when the error contains the message "interrupted at shutdown".Existing spec tests cover the more specific error - see: https://github.com/mongodb/node-mongodb-native/blob/main/test/spec/retryable-writes/legacy/insertOne-serverErrors.yml#L468
Note: see #3438 for what a start of a refactor away from checking for this error message and creating separate streams for the change stream cursor and the others would look like. However it seems the "operation was interrupted" message affects change streams as well so I'll leave it as draft for now.
Is there new documentation needed for these changes?
None
What is the motivation for this change?
NODE-4475
Double check the following
npm run check:lint
script<type>(NODE-xxxx)<!>: <description>