-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: 3.7.3, 4.2.0
-
Component/s: None
Use Case
As a developers
I want the driver to retry writes according to the specification
So that the driver behaves as expected.
The driver currently determines if a write is retryable by only looking at the error code. The retryable writes specification states which error codes are retryable but that the driver MUST retry any write when the error has the "RetryableWriteError" label. From server 4.4 the server adds the label itself so that must be the source of truth, not the error code.
User Impact
Nothing known broken.
Dependencies
None
Unknowns
None
Acceptance Criteria
- Update the check if a write is retryable to be based only on the RetryableWriteError label and not the code.
-Re-enable the currently skipped tests.
-Limit scope to 4.x driver unless it is a straight forward port to 3.x.
Implementation Requirements
None
Testing Requirements
- All existing tests must pass.
Documentation Requirements
None
Follow Up Requirements
None
- is related to
-
NODE-2111 Add retryable-writes prose test to check MMAPv1 Retryable Writes errors
- Closed
-
NODE-2802 Apply txnNumber without mutating command options
- Backlog
-
NODE-2379 Expand use of error labels for RetryableWrites
- Closed
-
NODE-3733 Make retryable write test error labels behave consistently with server
- Closed