summaryrefslogtreecommitdiff
path: root/jstests/replsets
diff options
context:
space:
mode:
authorWilliam Schultz <william.schultz@mongodb.com>2017-10-23 14:43:00 -0400
committerWilliam Schultz <william.schultz@mongodb.com>2017-10-23 14:53:06 -0400
commit410a36fcf78edde649e01c909cf402c4c6e21e00 (patch)
tree2a9dc1ef1743d85987d1a75fc9deea78242a897a /jstests/replsets
parent9af189775db7b17b265d18a04ca0dc314792a4c5 (diff)
downloadmongo-410a36fcf78edde649e01c909cf402c4c6e21e00.tar.gz
SERVER-31166 Ensure all rollback tests check dbhash and oplog consistency
Diffstat (limited to 'jstests/replsets')
-rw-r--r--jstests/replsets/double_rollback.js4
-rw-r--r--jstests/replsets/read_committed_after_rollback.js4
-rw-r--r--jstests/replsets/rollback_auth.js6
-rw-r--r--jstests/replsets/rollback_creates_rollback_directory.js4
-rw-r--r--jstests/replsets/rollback_crud_op_sequences.js4
-rw-r--r--jstests/replsets/rollback_ddl_op_sequences.js4
-rw-r--r--jstests/replsets/rollback_different_h.js4
-rw-r--r--jstests/replsets/rollback_transaction_table.js1
-rw-r--r--jstests/replsets/rollback_views.js4
-rw-r--r--jstests/replsets/rollback_with_socket_error_then_steady_state.js8
10 files changed, 43 insertions, 0 deletions
diff --git a/jstests/replsets/double_rollback.js b/jstests/replsets/double_rollback.js
index 2bcc384d3ef..fe2eaccf165 100644
--- a/jstests/replsets/double_rollback.js
+++ b/jstests/replsets/double_rollback.js
@@ -140,4 +140,8 @@
writeConcern: {w: 3, wtimeout: ReplSetTest.kDefaultTimeoutMS}
}));
+ // Verify data consistency between nodes.
+ rst.checkReplicatedDataHashes();
+ rst.checkOplogs();
+
}());
diff --git a/jstests/replsets/read_committed_after_rollback.js b/jstests/replsets/read_committed_after_rollback.js
index be17c5bea3f..219c0c8f327 100644
--- a/jstests/replsets/read_committed_after_rollback.js
+++ b/jstests/replsets/read_committed_after_rollback.js
@@ -142,4 +142,8 @@ load("jstests/replsets/rslib.js"); // For startSetIfSupportsReadMajority.
{a: 1}, {writeConcern: {w: 'majority', wtimeout: replTest.kDefaultTimeoutMS}}));
assert.eq(doCommittedRead(newPrimaryColl), 'new');
assert.eq(doCommittedRead(oldPrimaryColl), 'new');
+
+ // Verify data consistency between nodes.
+ replTest.checkReplicatedDataHashes();
+ replTest.checkOplogs();
}());
diff --git a/jstests/replsets/rollback_auth.js b/jstests/replsets/rollback_auth.js
index bbdc4addb6f..073ecb486ff 100644
--- a/jstests/replsets/rollback_auth.js
+++ b/jstests/replsets/rollback_auth.js
@@ -199,5 +199,11 @@
checkFinalResults(a);
checkFinalResults(b);
+ // Verify data consistency between nodes.
+ authutil.asCluster(replTest.nodes, 'jstests/libs/key1', function() {
+ replTest.checkReplicatedDataHashes();
+ replTest.checkOplogs();
+ });
+
replTest.stopSet();
}());
diff --git a/jstests/replsets/rollback_creates_rollback_directory.js b/jstests/replsets/rollback_creates_rollback_directory.js
index 78eead7ae34..0de5e21f73e 100644
--- a/jstests/replsets/rollback_creates_rollback_directory.js
+++ b/jstests/replsets/rollback_creates_rollback_directory.js
@@ -88,6 +88,10 @@ assert.eq(null, B.foo.findOne({key: 'value1'}).res);
var rollbackDir = Bpath + "rollback/";
assert(pathExists(rollbackDir), "rollback directory was not created!");
+// Verify data consistency between nodes.
+replTest.checkReplicatedDataHashes();
+replTest.checkOplogs();
+
print(testName + ".js SUCCESS");
replTest.stopSet(15);
diff --git a/jstests/replsets/rollback_crud_op_sequences.js b/jstests/replsets/rollback_crud_op_sequences.js
index 03950c6c179..a7a11aed621 100644
--- a/jstests/replsets/rollback_crud_op_sequences.js
+++ b/jstests/replsets/rollback_crud_op_sequences.js
@@ -141,5 +141,9 @@ load("jstests/replsets/rslib.js");
checkFinalResults(a);
checkFinalResults(b);
+ // Verify data consistency between nodes.
+ replTest.checkReplicatedDataHashes();
+ replTest.checkOplogs();
+
replTest.stopSet(15);
}());
diff --git a/jstests/replsets/rollback_ddl_op_sequences.js b/jstests/replsets/rollback_ddl_op_sequences.js
index 622d29a7fe1..d074bb33d4e 100644
--- a/jstests/replsets/rollback_ddl_op_sequences.js
+++ b/jstests/replsets/rollback_ddl_op_sequences.js
@@ -160,5 +160,9 @@ load("jstests/replsets/rslib.js");
checkFinalResults(a);
checkFinalResults(b);
+ // Verify data consistency between nodes.
+ replTest.checkReplicatedDataHashes();
+ replTest.checkOplogs();
+
replTest.stopSet(15);
}());
diff --git a/jstests/replsets/rollback_different_h.js b/jstests/replsets/rollback_different_h.js
index cc242925d7b..0c4967aa691 100644
--- a/jstests/replsets/rollback_different_h.js
+++ b/jstests/replsets/rollback_different_h.js
@@ -94,4 +94,8 @@ assert.soon(function() {
}
}, "collection on A and B did not match after rollback");
+// Verify data consistency between nodes.
+replTest.checkReplicatedDataHashes();
+replTest.checkOplogs();
+
replTest.stopSet();
diff --git a/jstests/replsets/rollback_transaction_table.js b/jstests/replsets/rollback_transaction_table.js
index 9e0ca77a6d4..df1083f64a5 100644
--- a/jstests/replsets/rollback_transaction_table.js
+++ b/jstests/replsets/rollback_transaction_table.js
@@ -215,6 +215,7 @@
// Confirm the nodes are consistent.
replTest.checkReplicatedDataHashes(testName);
+ replTest.checkOplogs();
replTest.stopSet();
}());
diff --git a/jstests/replsets/rollback_views.js b/jstests/replsets/rollback_views.js
index 1547f09200a..a833ed82ecc 100644
--- a/jstests/replsets/rollback_views.js
+++ b/jstests/replsets/rollback_views.js
@@ -131,5 +131,9 @@ load("jstests/replsets/rslib.js");
printjson(checkFinalResults([a2, b2], ["coll", "system.views"], ["y"]));
printjson(checkFinalResults([a3, b3], ["coll", "system.views"], ["z"]));
+ // Verify data consistency between nodes.
+ replTest.checkReplicatedDataHashes();
+ replTest.checkOplogs();
+
replTest.stopSet();
}());
diff --git a/jstests/replsets/rollback_with_socket_error_then_steady_state.js b/jstests/replsets/rollback_with_socket_error_then_steady_state.js
index 48c77852a84..98dfc368f7e 100644
--- a/jstests/replsets/rollback_with_socket_error_then_steady_state.js
+++ b/jstests/replsets/rollback_with_socket_error_then_steady_state.js
@@ -129,4 +129,12 @@
ReplSetTest.State.ROLLBACK,
"node 2 is doing steady-state replication with state=ROLLBACK!");
waitForState(nodes[2], ReplSetTest.State.SECONDARY);
+
+ // Re-connect all nodes.
+ nodes[1].reconnect([nodes[0], nodes[3], nodes[4]]);
+
+ // Verify data consistency between nodes.
+ rst.checkReplicatedDataHashes();
+ rst.checkOplogs();
+
}());