diff options
Diffstat (limited to 'jstests/noPassthrough/verify_session_cache_updates.js')
-rw-r--r-- | jstests/noPassthrough/verify_session_cache_updates.js | 112 |
1 files changed, 56 insertions, 56 deletions
diff --git a/jstests/noPassthrough/verify_session_cache_updates.js b/jstests/noPassthrough/verify_session_cache_updates.js index 48622ba7b95..47d6068d5cf 100644 --- a/jstests/noPassthrough/verify_session_cache_updates.js +++ b/jstests/noPassthrough/verify_session_cache_updates.js @@ -1,76 +1,76 @@ // @tags: [requires_sharding] (function() { - 'use strict'; +'use strict'; - // This test makes assertions about the number of sessions, which are not compatible with - // implicit sessions. - TestData.disableImplicitSessions = true; +// This test makes assertions about the number of sessions, which are not compatible with +// implicit sessions. +TestData.disableImplicitSessions = true; - function runTest(conn) { - for (var i = 0; i < 10; ++i) { - conn.getDB("test").test.save({a: i}); - } +function runTest(conn) { + for (var i = 0; i < 10; ++i) { + conn.getDB("test").test.save({a: i}); + } - function verify(conn, nRecords) { - conn.getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); - assert.eq(nRecords, conn.getDB("config").system.sessions.find({}).count()); - } + function verify(conn, nRecords) { + conn.getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); + assert.eq(nRecords, conn.getDB("config").system.sessions.find({}).count()); + } - function getLastUse(conn) { - conn.getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); - return conn.getDB("config").system.sessions.findOne({}).lastUse; - } + function getLastUse(conn) { + conn.getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); + return conn.getDB("config").system.sessions.findOne({}).lastUse; + } - // initially we have no sessions - verify(conn, 0); + // initially we have no sessions + verify(conn, 0); - // Calling startSession in the shell doesn't initiate the session - var session = conn.startSession(); - verify(conn, 0); + // Calling startSession in the shell doesn't initiate the session + var session = conn.startSession(); + verify(conn, 0); - // running a command that doesn't require auth does touch - session.getDatabase("admin").runCommand("isMaster"); - verify(conn, 1); + // running a command that doesn't require auth does touch + session.getDatabase("admin").runCommand("isMaster"); + verify(conn, 1); - // running a session updating command does touch + // running a session updating command does touch + session.getDatabase("admin").runCommand({serverStatus: 1}); + verify(conn, 1); + + // running a session updating command updates last use + { + var lastUse = getLastUse(conn); + sleep(200); session.getDatabase("admin").runCommand({serverStatus: 1}); verify(conn, 1); - - // running a session updating command updates last use - { - var lastUse = getLastUse(conn); - sleep(200); - session.getDatabase("admin").runCommand({serverStatus: 1}); - verify(conn, 1); - assert.gt(getLastUse(conn), lastUse); - } - - // verify that reading from a cursor updates last use - { - var cursor = session.getDatabase("test").test.find({}).batchSize(1); - cursor.next(); - var lastUse = getLastUse(conn); - sleep(200); - verify(conn, 1); - cursor.next(); - assert.gt(getLastUse(conn), lastUse); - } - - session.endSession(); + assert.gt(getLastUse(conn), lastUse); } + // verify that reading from a cursor updates last use { - var mongod = MongoRunner.runMongod({nojournal: ""}); - runTest(mongod); - MongoRunner.stopMongod(mongod); + var cursor = session.getDatabase("test").test.find({}).batchSize(1); + cursor.next(); + var lastUse = getLastUse(conn); + sleep(200); + verify(conn, 1); + cursor.next(); + assert.gt(getLastUse(conn), lastUse); } - { - var st = new ShardingTest({shards: 1, mongos: 1, config: 1}); - st.rs0.getPrimary().getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); + session.endSession(); +} - runTest(st.s0); - st.stop(); - } +{ + var mongod = MongoRunner.runMongod({nojournal: ""}); + runTest(mongod); + MongoRunner.stopMongod(mongod); +} + +{ + var st = new ShardingTest({shards: 1, mongos: 1, config: 1}); + st.rs0.getPrimary().getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); + + runTest(st.s0); + st.stop(); +} })(); |