-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
CAR Team 2025-11-10
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
During addShard, we propagate the setUserWriteBlock state from the cluster to the new shard. We also block new setUserWriteBlock coordinators from running, however we do not drain the ongoing ones. This can lead to the following scenario which leads to the new shard having incorrect userWriteBlock state:
- start setUserWriteBlock coordinator
- start add shard
- commit add shard
- setUserWriteBlock takes the stable topology region and sends the state to all shards but does not yet write it on the configsvr
- add shard propagates the old setuserwriteblock state to the new shard
- setUserWriteBlock writes the new value on the config server
Rather than relying on the stable topology region in the setUserWriteBlock coordinator, we should drain the ongoing coordinators in the addShard command ensuring that the state cannot change while a shard is being added.