In suites with random_migrations: true the balancer should randomly execute moveCollection on untracked unsplittable collection.
Currently, all the attempts executed by the balancer fail, this means that untracked unsplittable collections are never randomly moved.
This issue is caused by a wrong check that we perform in shardsvr_reshard_collection_command.cpp. In fact, here, we only attempt to register untracked collections if the resharding operations has provenance == kMoveCollection. On the other hand, the resharding commands sent by the balancer use provenance == kBalancerMoveCollection.
As a result, if the moveCollection operation is coming from the balancer, we will always skip the registration of the unsplittable collection and resharding operation will fail with NamespaceNotFound.
In order to fix the issue, we should simply use resharding::isMoveCollection(<Provenance>) helper function to assess if the request is a moveCollection.
- depends on
-
SERVER-89400 ShardCollection should serialize with concurrent unsplittable creation coordinators
- Closed
-
SERVER-89403 Registration of unsharded collections upon moveCollection ignore collation
- Closed
- fixes
-
SERVER-89394 Randomize databases in Balancer MoveUnshardedPolicy
- Closed
-
SERVER-89405 Balancer random migrations stop working when there are views/timeseries
- Closed
-
SERVER-89410 moveCollection should never create a collection that can't be tracked
- Closed
- is duplicated by
-
SERVER-89543 Exclude query_settings_size_limits.js from balancer suites
- Closed