Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-58195

InterruptedDueToReplStateChange missing 'RetryableWriteError' error label

    • Type: Icon: Bug Bug
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 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.

            Assignee:
            lingzhi.deng@mongodb.com Lingzhi Deng
            Reporter:
            ross@mongodb.com Ross Lawley
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: