const st = new ShardingTest({
mongos: [{
setParameter: {
logComponentVerbosity: tojson({network: {verbosity: 2}, executor: {verbosity:2}}),
"failpoint.scanningServerSelectorIgnoreLatencyWindow": tojson({mode: "alwaysOn"}),
"failpoint.sdamServerSelectorIgnoreLatencyWindow": tojson({mode: "alwaysOn"}),
"failpoint.networkInterfaceSendRequestsToTargetHostsInAlphabeticalOrder":
tojson({mode: "alwaysOn"})
}
}],
shards: 1,
rs: {nodes: 2, setParameter: {logComponentVerbosity: tojson({command: {verbosity: 2}})}}
});
const dbName = "hedged_reads";
const collName = "test";
const ns = dbName + "." + collName;
const testDB = st.s.getDB(dbName);
const numDocs = 10;
assert.commandWorked(st.s.adminCommand({enableSharding: dbName}));
st.ensurePrimaryShard(dbName, st.shard0.shardName);
let bulk = testDB[collName].initializeUnorderedBulkOp();
for (let i = 0; i < numDocs; i++) {
bulk.insert({x: i});
}
assert.commandWorked(bulk.execute());
assert.commandWorked(st.s.adminCommand({setParameter: 1, maxTimeMSForHedgedReads: 1000}));
jsTest.log(
"Start test");
assert.commandWorked(testDB.runCommand({
count: collName,
query: {$where: "sleep(100); return true;", x: {$gte: 0}},
$readPreference: {mode: "nearest"}
}));
st.stop();
}());