Convert InterruptedDueToTimeseriesUpgradeDowngrade into driver-recognizable retriable error code

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Problem

      As explained in SERVER-120158 currently retryability of reads commands is implemented in the drivers, in particular the drivers will only retry reads command if they failed with one of these error codes.

      When a read operation on a timeseries collection is interrupted due to concurrent FCV transition that have upgrade/downgrade the collection metadata the server will emit a InterruptedDueToTimeseriesUpgradeDowngrade error.

      Since this error is not among the list of error codes the driver consider retriable the operation will not be retried, even though it is actually idempotent and safe to retry.

      Proposed solution

      In order to make sure the driver retry idempotent operations interrupted due to FCV upgrade/downgrade we should make the server intercept InterruptedDueToTimeseriesUpgradeDowngrade and convert the error into one that the drivers already consider retriable.

      The long term solution for this problem is tracked by SERVER-120158.

            Assignee:
            Unassigned
            Reporter:
            Tommaso Tocci
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: