From c4e738bd723b3a4de251cb0c5bfda9ed1aec62de Mon Sep 17 00:00:00 2001 From: Brett Nawrocki <90278537+brettnawrocki@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:31:30 -0500 Subject: [PATCH] SERVER-119395 Fix migration_fails_with_spurious_documents.js (#48782) GitOrigin-RevId: a03988582946da0b6dab5cb3325f46e25f96df82 --- .../migration_fails_with_spurious_documents.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jstests/sharding/migration_fails_with_spurious_documents.js b/jstests/sharding/migration_fails_with_spurious_documents.js index efad7ef721e..74bb8ba182f 100644 --- a/jstests/sharding/migration_fails_with_spurious_documents.js +++ b/jstests/sharding/migration_fails_with_spurious_documents.js @@ -387,9 +387,14 @@ assert.commandWorked(admin.runCommand({enableSharding: "test", primaryShard: st. ); // Find a chunk we can move that would conflict with our spurious document. + const hashedValue = convertShardKeyToHashed(testUserId); let targetChunk = null; for (let chunk of hashedChunks) { - if (chunk.shard === targetShard) { + if (chunk.shard !== targetShard) { + continue; + } + if (bsonWoCompare(chunk.min.user_id, hashedValue) <= 0 && + bsonWoCompare(chunk.max.user_id, hashedValue) > 0) { targetChunk = chunk; break; } @@ -404,7 +409,7 @@ assert.commandWorked(admin.runCommand({enableSharding: "test", primaryShard: st. let hashedMoveResult = admin.runCommand({ moveChunk: hashedColl.getFullName(), bounds: [targetChunk.min, targetChunk.max], - to: spuriousShardColl.getName().includes("rs0") ? st.shard1.shardName : st.shard0.shardName, + to: targetShard === st.shard0.shardName ? st.shard1.shardName : st.shard0.shardName, _waitForDelete: true, }); @@ -433,7 +438,7 @@ assert.commandWorked(admin.runCommand({enableSharding: "test", primaryShard: st. hashedMoveResult = admin.runCommand({ moveChunk: hashedColl.getFullName(), bounds: [targetChunk.min, targetChunk.max], - to: spuriousShardColl.getName().includes("rs0") ? st.shard1.shardName : st.shard0.shardName, + to: targetShard === st.shard0.shardName ? st.shard1.shardName : st.shard0.shardName, _waitForDelete: true, });