Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-38847

Suites using txn_override.js will not retry transient transaction errors without loading auto_retry_on_network_error.js

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Sharding
    • Operating System:
      ALL

      Description

      txn_override.js wraps test statements in multi document transactions and contains logic to retry entire transactions if any fail with transient errors. The override doesn't catch transient errors for commands other than commitTransaction though, relying on auto_retry_on_network_error.js to do so instead. Several suites have been added that use txn_override.js but don't expect network errors so they don't also include auto_retry_on_network_error.js, which means they currently don't retry on transient errors. This is especially important for suites exercising cross-shard transactions, which are particularly prone to transient snapshot errors.

      A quick fix would be to include the auto_retry_on_network_error.js override in every suite that uses txn_override.js, but a more complete approach might be to catch and retry transient transaction errors in txn_override.js itself so it doesn't rely on a seemingly unrelated override.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              backlog-server-sharding Backlog - Sharding Team
              Reporter:
              jack.mulrow Jack Mulrow
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: