summaryrefslogtreecommitdiff
path: root/jstests/replsets/refresh_sessions_rs.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/replsets/refresh_sessions_rs.js')
-rw-r--r--jstests/replsets/refresh_sessions_rs.js158
1 files changed, 78 insertions, 80 deletions
diff --git a/jstests/replsets/refresh_sessions_rs.js b/jstests/replsets/refresh_sessions_rs.js
index 4539e667d07..24d553c2df7 100644
--- a/jstests/replsets/refresh_sessions_rs.js
+++ b/jstests/replsets/refresh_sessions_rs.js
@@ -1,82 +1,80 @@
(function() {
- "use strict";
-
- // This test makes assertions about the number of logical session records.
- TestData.disableImplicitSessions = true;
-
- var refresh = {refreshLogicalSessionCacheNow: 1};
- var startSession = {startSession: 1};
-
- // Start up a replica set.
- var dbName = "config";
-
- var replTest = new ReplSetTest({name: 'refresh', nodes: 3});
- var nodes = replTest.startSet();
-
- replTest.initiate();
- var primary = replTest.getPrimary();
-
- replTest.awaitSecondaryNodes();
- var server2 = replTest._slaves[0];
- var server3 = replTest._slaves[1];
-
- var db1 = primary.getDB(dbName);
- var db2 = server2.getDB(dbName);
- var db3 = server3.getDB(dbName);
-
- var res;
-
- // The primary needs to create the sessions collection so that the secondaries can act upon it.
- // This is done by an initial refresh of the primary.
- res = db1.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
- replTest.awaitReplication();
-
- // Trigger an initial refresh on secondaries as a sanity check.
- res = db2.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
- res = db3.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
-
- // Connect to the primary and start a session.
- db1.runCommand(startSession);
- assert.commandWorked(res, "unable to start session");
-
- // That session should not be in db.system.sessions yet.
- assert.eq(db1.system.sessions.count(), 0, "should not have session records yet");
-
- // Connect to each replica set member and start a session.
- res = db2.runCommand(startSession);
- assert.commandWorked(res, "unable to start session");
- res = db3.runCommand(startSession);
- assert.commandWorked(res, "unable to start session");
-
- // Connect to a secondary and trigger a refresh.
- res = db2.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
-
- // Connect to the primary. The sessions collection here should have one record for the session
- // on the secondary.
- assert.eq(db1.system.sessions.count(), 1, "failed to refresh on the secondary");
-
- // Trigger a refresh on the primary. The sessions collection should now contain two records.
- res = db1.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
- assert.eq(
- db1.system.sessions.count(), 2, "should have two local session records after refresh");
-
- // Trigger another refresh on all members.
- res = db2.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
- res = db3.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
- res = db1.runCommand(refresh);
- assert.commandWorked(res, "failed to refresh");
-
- // The sessions collection on the primary should now contain all records.
- assert.eq(
- db1.system.sessions.count(), 3, "should have three local session records after refresh");
-
- // Stop the test.
- replTest.stopSet();
+"use strict";
+
+// This test makes assertions about the number of logical session records.
+TestData.disableImplicitSessions = true;
+
+var refresh = {refreshLogicalSessionCacheNow: 1};
+var startSession = {startSession: 1};
+
+// Start up a replica set.
+var dbName = "config";
+
+var replTest = new ReplSetTest({name: 'refresh', nodes: 3});
+var nodes = replTest.startSet();
+
+replTest.initiate();
+var primary = replTest.getPrimary();
+
+replTest.awaitSecondaryNodes();
+var server2 = replTest._slaves[0];
+var server3 = replTest._slaves[1];
+
+var db1 = primary.getDB(dbName);
+var db2 = server2.getDB(dbName);
+var db3 = server3.getDB(dbName);
+
+var res;
+
+// The primary needs to create the sessions collection so that the secondaries can act upon it.
+// This is done by an initial refresh of the primary.
+res = db1.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+replTest.awaitReplication();
+
+// Trigger an initial refresh on secondaries as a sanity check.
+res = db2.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+res = db3.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+
+// Connect to the primary and start a session.
+db1.runCommand(startSession);
+assert.commandWorked(res, "unable to start session");
+
+// That session should not be in db.system.sessions yet.
+assert.eq(db1.system.sessions.count(), 0, "should not have session records yet");
+
+// Connect to each replica set member and start a session.
+res = db2.runCommand(startSession);
+assert.commandWorked(res, "unable to start session");
+res = db3.runCommand(startSession);
+assert.commandWorked(res, "unable to start session");
+
+// Connect to a secondary and trigger a refresh.
+res = db2.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+
+// Connect to the primary. The sessions collection here should have one record for the session
+// on the secondary.
+assert.eq(db1.system.sessions.count(), 1, "failed to refresh on the secondary");
+
+// Trigger a refresh on the primary. The sessions collection should now contain two records.
+res = db1.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+assert.eq(db1.system.sessions.count(), 2, "should have two local session records after refresh");
+
+// Trigger another refresh on all members.
+res = db2.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+res = db3.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+res = db1.runCommand(refresh);
+assert.commandWorked(res, "failed to refresh");
+
+// The sessions collection on the primary should now contain all records.
+assert.eq(db1.system.sessions.count(), 3, "should have three local session records after refresh");
+
+// Stop the test.
+replTest.stopSet();
})();