-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
QE 2026-10-12, QE 2026-10-26
-
0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Problem
BF-46709: CheckOrphansDeleted times out after fts_spanish.js in disagg_sharded_colls_jscore_passthrough_secondary_reads_with_balancer, with a config.rangeDeletions task stuck in processing: true.
implicitly_shard_accessed_collections.js shards the test collection on {_id: "hashed"}, and the random-migrations balancer moves a chunk off the donor, which queues a range deletion. If the test then calls coll.dropIndexes() before the deletion runs, dropIndexes("*") also drops the hashed shard key index, because skipDroppingHashedShardKeyIndex is not set (see drop_indexes.cpp). The range deleter needs that index, fails with IndexNotFound, and the task never completes, so the hook times out after 12 minutes.
This is a race in the test setup, not a product bug. Any jscore test that calls dropIndexes() can hit it in this suite.
Fix
Add skipDroppingHashedShardKeyIndex: true to the mongod set_parameters of the balancer_and_migrations_fixture override in buildscripts/modules/atlas/matrix_suites/overrides/disagg.yml, then regenerate the matrix suites.
This matches the comparable suites that already set the parameter:
- sharded_collections_jscore_passthrough_with_config_transitions_and_add_remove_shard and its disagg variant
- disagg_multi_stmt_txn_jscore_passthrough_with_migration
- the disagg concurrency balancer suites (via fsm_balancer_and_migrations_fixture)
Of the six suites that use balancer_and_migrations_fixture, this is the only one without the parameter, so regenerating changes only this suite.
Possible follow-up (not in scope)
The stuck task had numOrphanDocs: 0. The range deleter could complete an empty-range task without needing the shard key index, instead of retrying forever on IndexNotFound.