-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(NODE-3688): make handshake errors retryable #3165
Conversation
87472cd
to
c9d9277
Compare
d9a3a5c
to
0295f5f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a couple of organizational notes; I verified the synced spec files but I haven't fully reviewed the actual manual implementations of the spec tests yet, I wanted to hear your thoughts on the potential alternate approach in case it actually makes things easier
test/integration/retryable-reads/retryable_reads.prose.spec.test.ts
Outdated
Show resolved
Hide resolved
test/integration/retryable-writes/retryable_writes.spec.test.ts
Outdated
Show resolved
Hide resolved
test/integration/retryable-writes/retryable_writes.spec.prose.test.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked through all the tests, just a few notes here:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few more cleanup notes, but since @durran you'll be on vacation, I think the rest of the team can easily wrap this up ourselves, don't worry about it
test/integration/retryable-writes/retryable_writes.spec.test.ts
Outdated
Show resolved
Hide resolved
test/integration/retryable-writes/retryable_writes.spec.test.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made some modifications to the tests addressing my previous comments, passing on the review to the rest of the team now
@nbbeeken What I've ended up doing here (since there are a few old stale comments) is adding a label to the handshake error, and then ensuring that if we are 4.4 and higher we don't add any additional labels except in the case where that label exists. This covers all the cases and all spec tests are passing. My changes to the spec tests are now removed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry this took me a bit to get to, I think we're all set. I reran the one failure, but it looks transient
Description
Makes operations retryable when the handshake fails.
What is changing?
Is there new documentation needed for these changes?
No
What is the motivation for this change?
NODE-3688
Notes
After syncing tests there were some extras that sneaked in:
This PR also syncs retryable writes unified tests from NODE-3733/DRIVERS-1385 that were missed in that work.
This PR also syncs transaction unified tests from DRIVERS-1539 that did not get individual language tickets.
Double check the following
npm run check:lint
script<type>(NODE-xxxx)<!>: <description>