-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
v9.0
-
CAR Team 2026-07-20, CAR Team 2026-08-03
-
200
-
🟥 DDL
-
None
-
None
-
None
-
None
-
None
-
None
The _waitForDelete flag for moveChunk and moveRange commands may not be honored even when the command returns a successful response.
This can happen if an in-progress MoveRangeCoordinator hits a retryable error while committing to either the global catalog or the shard catalog. In that case, the operation is retried, the MigrationAttempt object is destroyed, and the operation no longer waits for range deletions to complete.
More specifically, the kFinalization phase has two execution paths depending on whether a MigrationAttempt object exists. Because MigrationAttempt does not support a second attempt, it is destroyed whenever the operation is retried. This is also why the earlier phases of MoveRangeCoordinator do not tolerate retries. Since waiting for range deletions happens only when a MigrationAttempt object exists, any retry causes that object to be destroyed, and _waitForDelete is effectively ignored.