Skip to content
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

Merged
merged 21 commits into from
Apr 22, 2022
Merged

fix(NODE-3688): make handshake errors retryable #3165

merged 21 commits into from
Apr 22, 2022

Conversation

durran
Copy link
Member

@durran durran commented Mar 9, 2022

Description

Makes operations retryable when the handshake fails.

What is changing?

  • Updates spec tests for retryable reads & writes and transactions.
  • Verifies handshakes errors are retryable via new integration tests that mimic the unified tests.
  • Skips unified retryable handshake tests. (see comments in the spec test runner)
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

  • Ran npm run check:lint script
  • Self-review completed using the steps outlined here
  • PR title follows the correct format: <type>(NODE-xxxx)<!>: <description>
  • Changes are covered by tests
  • New TODOs have a related JIRA ticket

@durran durran added the wip label Mar 9, 2022
@durran durran force-pushed the NODE-3688 branch 3 times, most recently from 87472cd to c9d9277 Compare March 9, 2022 10:00
@durran durran added Primary Review In Review with primary reviewer, not yet ready for team's eyes wip and removed wip Primary Review In Review with primary reviewer, not yet ready for team's eyes labels Mar 15, 2022
@durran durran force-pushed the NODE-3688 branch 5 times, most recently from d9a3a5c to 0295f5f Compare March 15, 2022 14:27
@durran durran added Primary Review In Review with primary reviewer, not yet ready for team's eyes and removed wip labels Mar 15, 2022
@dariakp dariakp self-assigned this Mar 15, 2022
Copy link
Contributor

@dariakp dariakp left a 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

@dariakp dariakp added Team Review Needs review from team and removed Primary Review In Review with primary reviewer, not yet ready for team's eyes labels Mar 17, 2022
Copy link
Contributor

@dariakp dariakp left a 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:

test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
test/integration/transactions/transactions.spec.test.js Outdated Show resolved Hide resolved
@dariakp dariakp changed the title test(NODE-3688): make handshake errors retryable fix(NODE-3688): make handshake errors retryable Mar 17, 2022
@durran durran requested a review from dariakp March 18, 2022 15:32
Copy link
Contributor

@dariakp dariakp left a 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

dariakp
dariakp previously approved these changes Mar 22, 2022
Copy link
Contributor

@dariakp dariakp left a 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

@durran
Copy link
Member Author

durran commented Apr 20, 2022

@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.

@durran durran requested a review from nbbeeken April 20, 2022 17:01
Copy link
Contributor

@nbbeeken nbbeeken left a 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

@nbbeeken nbbeeken removed the request for review from dariakp April 21, 2022 19:21
@durran durran merged commit 3f8765a into main Apr 22, 2022
@durran durran deleted the NODE-3688 branch April 22, 2022 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team Review Needs review from team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants