load( "jstests/libs/slow_weekly_util.js" ) test = new SlowWeeklyMongod( "conc_update" ) db = test.getDB("concurrency") db.dropDatabase(); NRECORDS=3*1024*1024 print("loading "+NRECORDS+" documents (progress msg every 1024*1024 documents)") var bulk = db.conc.initializeUnorderedBulkOp(); for (var i = 0; i < NRECORDS; i++) { bulk.insert({ x: i }); } assert.writeOK(bulk.execute()); print("making an index (this will take a while)") db.conc.ensureIndex({x:1}) var c1=db.conc.count({x:{$lt:NRECORDS}}) updater = startParallelShell("db = db.getSisterDB('concurrency');\ db.concflag.insert({ inprog: true });\ sleep(20);\ assert.writeOK(db.conc.update({}, \ { $inc: { x: " + NRECORDS + "}}, false, true)); \ assert.writeOK(db.concflag.update({}, { inprog: false }));"); assert.soon( function(){ var x = db.concflag.findOne(); return x && x.inprog; } , "wait for fork" , 30000 , 1 ); querycount=0; decrements=0; misses=0 assert.soon(function(){ c2=db.conc.count({x:{$lt:NRECORDS}}) print(c2) querycount++; if (c2