-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: 8.3.0-rc0
-
Component/s: None
-
None
-
Catalog and Routing
-
CAR Team 2025-10-27
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
SERVER-99545 introduced Operation FCV (OFCV, VersionContext), an FCV snapshot to an operation.
As initially introduced, an OFCV was always owned by a resilient distributed operation (ShardingDDLCoordinator), and was propagated across shards (SERVER-99557 / SERVER-99558).
Now that we are extending OFCV to replica set operations (a local, non-persisted OperationContext), we must make sure not propagate it across shards. The issue is that if we allow a network command to carry an OFCV, and the local operations is killed (or wiped out on a crash), there is no longer any state for setFCV to serialize/draining that network command before proceeding to the metadata transformation/cleanup phase.
Add an in-memory flag to VersionContext indicating whether it's safe to propagate it across shards. This flag is disabled by default, and only set if the VersionContext originates from ShardingDDLCoordinator.
- is depended on by
-
SERVER-111448 Create RAII helper to acquire Operation FCV for OperationContext
-
- Open
-
- is related to
-
SERVER-99545 Introduce the VersionContext type
-
- Closed
-
-
SERVER-99557 Augment outgoing request metadata with the OFCV
-
- Closed
-
-
SERVER-99558 Retrieve the OFCV from incoming request metadata
-
- Closed
-
-
SERVER-112760 Disallow serialization of VersionContext without Operation FCV
-
- Closed
-
- related to
-
SERVER-111444 Never replicate Operation FCV in the oplog in FCV <8.2
-
- In Code Review
-