Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2112

Retryable writes can write twice under very specific circumstances

    • Type: Icon: Spec Change Spec Change
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: Retryability
    • None
    • Needed

      The spec for retryable writes https://github.com/mongodb/specifications/blob/master/source/retryable-writes/retryable-writes.rst contains a Q&A section at the end of the document.

      However, the Q&A does not address one particular scenario when retryable writes can violate its "once and only once" guarantee, which was mentioned in the docs under Failover Period:

      If the client application becomes temporarily unresponsive for more than the localLogicalSessionTimeoutMinutes after issuing a write operation, there is a chance that when the client applications starts responding (without a restart), the write operation may be retried and applied again.

      This has created some confusion in the community since there seems to exist at least one possibility, no matter how small, that a retryable write can violate its intended design.

      Please consider adding this specific failure scenario (and how unlikely it is) to the Q&A section.

            Assignee:
            Unassigned Unassigned
            Reporter:
            kevin.adistambha@mongodb.com Kevin Adistambha
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: