-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
Affects Version/s: 8.0.27
-
Component/s: Replication
-
None
-
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
- is related to
-
SERVER-127987 Use ErrorCodes::Unauthorized for internal-cluster-action gates in initializeOperationSessionInfo
-
- Backlog
-