-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: 8.0.0-rc0
-
Component/s: None
-
None
-
Cluster Scalability
-
200
A moveCollection command changes the UUID of the targeted collection. Therefore, any query - using an auto yielding policy - will likely return a QueryPlanKilled error if a moveCollection commit happens during the query execution.
This error is triggered because we yield and restore the locks from time to time during the query execution leading to a collection check on every restore, which throws a QueryPlanKilled if the collection has been recreated (i.e. its UUID has changed).
This problem will worsen once we allow the balancer to automatically move collections to distribute the unsharded collections across the cluster evenly. So, we should decide if we accept this error or we do something to avoid it when a query conflicts with a moveCollection.
You will find a couple of stack traces in the comments of a find and count operations failing with a QueryPlanKilled error.
- is caused by
-
SERVER-79738 Create cluster move collection command
- Closed
-
SERVER-85441 Extend `balancerShouldReturnRandomMigrations` failpoint to additionally move random unsharded collections
- Closed
- is related to
-
SERVER-87186 Aggregation pipelines can fail due to QueryPlanKilled in sharding suites with migrations
- Closed
-
SERVER-88184 Increase the query yielding period on suites running with the balancer
- Closed
-
SERVER-97900 Prevent getMore in tests running in implicit moveCollection suites
- In Code Review