Files
mongo/jstests/core/queryoptimizer3.js
2016-03-09 12:18:14 -05:00

39 lines
1.0 KiB
JavaScript

// Check cases where index scans are aborted due to the collection being dropped. SERVER-4400
t = db.jstests_queryoptimizer3;
t.drop();
p = startParallelShell(
'for( i = 0; i < 400; ++i ) { sleep( 50 ); db.jstests_queryoptimizer3.drop(); }');
for (i = 0; i < 100; ++i) {
t.drop();
t.ensureIndex({a: 1});
t.ensureIndex({b: 1});
for (j = 0; j < 100; ++j) {
t.save({a: j, b: j});
}
try {
m = i % 5;
if (m == 0) {
t.count({a: {$gte: 0}, b: {$gte: 0}});
} else if (m == 1) {
t.find({a: {$gte: 0}, b: {$gte: 0}}).itcount();
} else if (m == 2) {
t.remove({a: {$gte: 0}, b: {$gte: 0}});
} else if (m == 3) {
t.update({a: {$gte: 0}, b: {$gte: 0}}, {});
} else if (m == 4) {
t.distinct('x', {a: {$gte: 0}, b: {$gte: 0}});
}
} catch (e) {
print("Op killed during yield: " + e.message);
}
}
p();
// Ensure that the server is still responding.
assert.commandWorked(db.runCommand({isMaster: 1}));