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

Change read_with_retry api to pass server to block

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 2.9.0.rc0
    • Affects Version/s: None
    • Component/s: None
    • None

      Retryable reads spec requires that if, when retrying, the chosen server does not support sessions, that the original exception is raised immediately. Currently retry code does not handle server selection, and the method being retried does. In order to support retryable writes server selection must be moved to the read_with_retry method.

      This change creates an issue with the legacy getMore retries because those are done on the same server, and now different attempts may receive a different server. Since the retryable writes spec prohibits getMore retries altogether, due to potential for silent data loss, the suggested path forward is to not retry getMore in legacy mode either.

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

              Created:
              Updated:
              Resolved: