Uploaded image for project: 'Ruby Driver'
  1. Ruby Driver
  2. RUBY-1986

Retry reads in legacy mode on OperationFailure errors that modern mode retries on

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 2.11.0, 2.10.3
    • Affects Version/s: None
    • Component/s: None
    • None
    • Minor Change

      As a temporary solution to https://jira.mongodb.org/browse/MONGOID-4785, the driver should retry reads when it receives a "node shutting down" type error and legacy read retries are used.

      In general, the driver retries in legacy mode on network errors but not on operation failure errors (except in sharded clusters where op failures are also retried). However, retries on op failures are safer since the server returned an error and thus operation was not performed, whereas for network errors in legacy mode the driver has no way of knowing whether the operation was executed. Therefore all op failure errors that modern retry logic retries on should also be retried in legacy mode.

      These retries are already done in sharded topologies - the change is to enable them in all topologies.

            Assignee:
            oleg.pudeyev@mongodb.com Oleg Pudeyev (Inactive)
            Reporter:
            oleg.pudeyev@mongodb.com Oleg Pudeyev (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: