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.
Nothing known broken.
- 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.
- All existing tests must pass.