-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
QE 2026-06-22, QE 2026-07-06
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Summary
Make the optimized updateLookup path safely disablable on a live cursor. When
featureFlagChangeStreamOptimizedUpdateLookup is turned off, any cursor still on the optimized
path is killed at its next getMore and the stream resumes on the legacy Aggregation path.
Scope
- Add a getMore precondition seam in getmore_cmd.cpp, mirroring the existing change-stream
readPreference enforcement check, that detects a cursor on the optimized path while the flag is
now off and surfaces a resumable error (kill-and-resume). - New cursors observe the current flag value at construction (handled by the factory gate in the
Express-wiring ticket); this ticket covers the transition for already-open cursors.
Files
- src/mongo/db/commands/query_cmd/getmore_cmd.cpp
Acceptance criteria
- A noPassthrough jstest opens an optimized change stream, turns the flag off, and asserts the
next getMore kills the cursor and the stream resumes on the legacy Aggregation path. - The test also asserts new cursors track the current flag value.
Dependencies
Depends on SERVER-117887
and SERVER-128414 (Express wiring) – there must be an optimized
path to retire.
- is related to
-
SERVER-117887 Create feature flag
-
- Closed
-
-
SERVER-128414 Wire ExpressSingleDocumentLookupExecutor live behind featureFlagChangeStreamOptimizedUpdateLookup
-
- Closed
-