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

Legacy write retries are used when modern retryable writes are requested on some operations

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 2.10.0.rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible

      There are some operations that the driver implements which the server does not support retrying writes for, such as update_many and delete_many. In these methods the driver unconditionally requests legacy retryable write logic instead of requesting the modern retryable writes. What happens then is the legacy logic is able to retry because the max_retry_writes remains at 1, when the correct behavior probably is to not retry.

      The simplest solution here is perhaps to add another method on top of legacy_write_with_retry which will not retry if retry_writes is true, otherwise delegate to legacy_write_with_retry.

            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: