-
Type: Bug
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: 4.4.6
-
Component/s: None
-
None
-
ALL
-
Repl 2021-07-26
When running an Atlas Failover Test on a M10 instance with the default connection string (retryWrites = true and writeconcern = majority) it is possible for the driver to receive the following error:
{"code": 11602, "codeName": "InterruptedDueToReplStateChange", "errmsg": "operation was interrupted", "errInfo": {"writeConcern": {"w": "majority", "wtimeout": 0, "provenance": "clientSupplied"}}}
The missing error labels (specifically the 'RetryableWriteError') label means that according to the retryable writes specification the error is not retryable:
For server versions 4.4 and newer, the server will add a RetryableWriteError label to errors or server responses that it considers retryable before returning them to the driver. As new server versions are released, the errors that are labeled with the RetryableWriteError label may change. Drivers MUST NOT add a RetryableWriteError label to any error derived from a 4.4+ server response (i.e. any error that is not a network error).
Steps to reproduce
Continually run updateOne operations in a loop and run a failover test in Atlas.
It is a race condition, so having minimal network latency (a nearer data center) helps increase the chance of the race.
- is related to
-
SERVER-41245 Add RetryableWriteError Error Label
- Closed
- related to
-
JAVA-4244 Top level error labels aren't added to WriteConcernErrors
- Closed