summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBlake Oler <blake.oler@mongodb.com>2018-04-19 18:32:26 -0400
committerBlake Oler <blake.oler@mongodb.com>2018-04-20 11:00:22 -0400
commitebfdd0f68c1c9477cf5795bd07256d596fea62c5 (patch)
tree1f3985bceb16bc13e3f7041a86552f7a49905d72 /src
parentef814713f7987991c14e38e496e3d015b3f5fa02 (diff)
downloadmongo-ebfdd0f68c1c9477cf5795bd07256d596fea62c5.tar.gz
SERVER-34496 Await all operations committed in ShardingTest::checkUUIDsConsistent hook
Diffstat (limited to 'src')
-rw-r--r--src/mongo/shell/replsettest.js39
-rw-r--r--src/mongo/shell/utils.js2
2 files changed, 23 insertions, 18 deletions
diff --git a/src/mongo/shell/replsettest.js b/src/mongo/shell/replsettest.js
index 7c200283189..499715ab18e 100644
--- a/src/mongo/shell/replsettest.js
+++ b/src/mongo/shell/replsettest.js
@@ -1094,7 +1094,7 @@ var ReplSetTest = function(opts) {
* of the oplog on *all* secondaries.
* Returns last oplog entry.
*/
- this.awaitLastOpCommitted = function() {
+ this.awaitLastOpCommitted = function(timeout) {
var rst = this;
var master = rst.getPrimary();
var masterOpTime = _getLastOpTime(master);
@@ -1102,26 +1102,29 @@ var ReplSetTest = function(opts) {
print("Waiting for op with OpTime " + tojson(masterOpTime) +
" to be committed on all secondaries");
- assert.soonNoExcept(function() {
- for (var i = 0; i < rst.nodes.length; i++) {
- var node = rst.nodes[i];
+ assert.soonNoExcept(
+ function() {
+ for (var i = 0; i < rst.nodes.length; i++) {
+ var node = rst.nodes[i];
- // Continue if we're connected to an arbiter
- var res = assert.commandWorked(node.adminCommand({replSetGetStatus: 1}));
- if (res.myState == ReplSetTest.State.ARBITER) {
- continue;
- }
- var rcmOpTime = _getReadConcernMajorityOpTime(node);
- if (friendlyEqual(rcmOpTime, {ts: Timestamp(0, 0), t: NumberLong(0)})) {
- return false;
- }
- if (rs.compareOpTimes(rcmOpTime, masterOpTime) < 0) {
- return false;
+ // Continue if we're connected to an arbiter
+ var res = assert.commandWorked(node.adminCommand({replSetGetStatus: 1}));
+ if (res.myState == ReplSetTest.State.ARBITER) {
+ continue;
+ }
+ var rcmOpTime = _getReadConcernMajorityOpTime(node);
+ if (friendlyEqual(rcmOpTime, {ts: Timestamp(0, 0), t: NumberLong(0)})) {
+ return false;
+ }
+ if (rs.compareOpTimes(rcmOpTime, masterOpTime) < 0) {
+ return false;
+ }
}
- }
- return true;
- }, "Op with OpTime " + tojson(masterOpTime) + " failed to be committed on all secondaries");
+ return true;
+ },
+ "Op with OpTime " + tojson(masterOpTime) + " failed to be committed on all secondaries",
+ timeout);
return masterOpTime;
};
diff --git a/src/mongo/shell/utils.js b/src/mongo/shell/utils.js
index 354162529c5..07cc666a15a 100644
--- a/src/mongo/shell/utils.js
+++ b/src/mongo/shell/utils.js
@@ -294,6 +294,8 @@ jsTestOptions = function() {
TestData.skipCheckingUUIDsConsistentAcrossCluster || false,
skipCheckingCatalogCacheConsistencyWithShardingCatalog:
TestData.skipCheckingCatalogCacheConsistencyWithShardingCatalog || false,
+ skipAwaitingReplicationOnShardsBeforeCheckingUUIDs:
+ TestData.skipAwaitingReplicationOnShardsBeforeCheckingUUIDs || false,
jsonSchemaTestFile: TestData.jsonSchemaTestFile,
excludedDBsFromDBHash: TestData.excludedDBsFromDBHash,
alwaysInjectTransactionNumber: TestData.alwaysInjectTransactionNumber,