Validate startOrContinueTransaction requires autocommit

XMLWordPrintableJSON

    • Replication
    • ALL
    • v9.0, v8.3, v8.2, v8.0
    • Repl 2026-06-08, Repl 2026-06-22, Repl 2026-06-22, Repl 2026-07-06, Repl 2026-07-20, Repl 2026-08-03
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Overview

      initializeOperationSessionInfo validates the precondition hierarchy lsid -> txnNumber -> autocommit -> startTransaction. The else branch (no autocommit supplied) rejects startTransaction but does not currently reject startOrContinueTransaction, even though both fields are only meaningful inside a multi-document transaction (i.e. with autocommit: false).

      Fix

      Add a symmetric uassert in initializeOperationSessionInfo that mirrors the existing startTransaction check:

      uassert(ErrorCodes::InvalidOptions,
              "'startOrContinueTransaction' field requires 'autocommit' field to also be specified",
              !osi.getStartOrContinueTransaction());
      

      Add a regression test in jstests/core/txns/multi_statement_transaction_command_args.js that exercises the new validation alongside the existing precondition-hierarchy tests.

      Acceptance Criteria

      • startOrContinueTransaction without autocommit returns InvalidOptions (consistent with startTransaction)
      • Regression test in multi_statement_transaction_command_args.js covers the new precondition
      • BACKPORT tickets filed for v8.2-staging and v8.0-staging

            Assignee:
            Moustafa Maher
            Reporter:
            Moustafa Maher
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: