diff options
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/commands/dbcheck.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/dbcommands.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/commands/distinct.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/commands/geo_near_cmd.cpp | 5 | ||||
-rw-r--r-- | src/mongo/db/commands/haystack.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/commands/list_collections.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/commands/list_databases.cpp | 5 | ||||
-rw-r--r-- | src/mongo/db/commands/list_indexes.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/commands/mr.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/commands/parallel_collection_scan.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/commands/pipeline_command.cpp | 4 | ||||
-rw-r--r-- | src/mongo/s/commands/cluster_db_stats_cmd.cpp | 3 | ||||
-rw-r--r-- | src/mongo/s/commands/cluster_list_databases_cmd.cpp | 6 | ||||
-rw-r--r-- | src/mongo/s/commands/commands_public.cpp | 17 | ||||
-rw-r--r-- | src/mongo/shell/replsettest.js | 11 |
15 files changed, 77 insertions, 13 deletions
diff --git a/src/mongo/db/commands/dbcheck.cpp b/src/mongo/db/commands/dbcheck.cpp index e462f89250b..219c82051d0 100644 --- a/src/mongo/db/commands/dbcheck.cpp +++ b/src/mongo/db/commands/dbcheck.cpp @@ -496,6 +496,10 @@ public: return false; } + bool maintenanceOk() const override { + return false; + } + virtual bool adminOnly() const { return false; } diff --git a/src/mongo/db/commands/dbcommands.cpp b/src/mongo/db/commands/dbcommands.cpp index 261b332fc7d..fec001af137 100644 --- a/src/mongo/db/commands/dbcommands.cpp +++ b/src/mongo/db/commands/dbcommands.cpp @@ -911,6 +911,9 @@ public: virtual bool slaveOk() const { return true; } + bool maintenanceOk() const override { + return false; + } virtual bool supportsWriteConcern(const BSONObj& cmd) const override { return false; } @@ -993,6 +996,9 @@ public: virtual bool slaveOk() const { return true; } + bool maintenanceOk() const override { + return false; + } virtual bool supportsWriteConcern(const BSONObj& cmd) const override { return false; } diff --git a/src/mongo/db/commands/distinct.cpp b/src/mongo/db/commands/distinct.cpp index 4ce5c7f78eb..483bb4bd037 100644 --- a/src/mongo/db/commands/distinct.cpp +++ b/src/mongo/db/commands/distinct.cpp @@ -67,9 +67,9 @@ namespace mongo { -using std::unique_ptr; using std::string; using std::stringstream; +using std::unique_ptr; namespace dps = ::mongo::dotted_path_support; @@ -85,6 +85,10 @@ public: return true; } + virtual bool maintenanceOk() const override { + return false; + } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { return false; } diff --git a/src/mongo/db/commands/geo_near_cmd.cpp b/src/mongo/db/commands/geo_near_cmd.cpp index 5380968b199..97ee8014114 100644 --- a/src/mongo/db/commands/geo_near_cmd.cpp +++ b/src/mongo/db/commands/geo_near_cmd.cpp @@ -60,8 +60,8 @@ namespace mongo { -using std::unique_ptr; using std::stringstream; +using std::unique_ptr; class Geo2dFindNearCmd : public ErrmsgCommandDeprecated { public: @@ -76,6 +76,9 @@ public: bool slaveOverrideOk() const { return true; } + bool maintenanceOk() const override { + return false; + } bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/haystack.cpp b/src/mongo/db/commands/haystack.cpp index 3b00077fe60..5f74b7279a5 100644 --- a/src/mongo/db/commands/haystack.cpp +++ b/src/mongo/db/commands/haystack.cpp @@ -78,6 +78,10 @@ public: return true; } + bool maintenanceOk() const override { + return false; + } + bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/list_collections.cpp b/src/mongo/db/commands/list_collections.cpp index 3509eb6f955..71cccabbdf6 100644 --- a/src/mongo/db/commands/list_collections.cpp +++ b/src/mongo/db/commands/list_collections.cpp @@ -205,6 +205,9 @@ public: virtual bool slaveOverrideOk() const { return true; } + virtual bool maintenanceOk() const override { + return false; + } virtual bool adminOnly() const { return false; } diff --git a/src/mongo/db/commands/list_databases.cpp b/src/mongo/db/commands/list_databases.cpp index c405b60ac39..0b7e63ddd02 100644 --- a/src/mongo/db/commands/list_databases.cpp +++ b/src/mongo/db/commands/list_databases.cpp @@ -65,6 +65,9 @@ public: virtual bool slaveOverrideOk() const { return true; } + virtual bool maintenanceOk() const override { + return false; + } virtual bool adminOnly() const { return true; } @@ -165,4 +168,4 @@ public: return true; } } cmdListDatabases; -} +} // namespace mongo diff --git a/src/mongo/db/commands/list_indexes.cpp b/src/mongo/db/commands/list_indexes.cpp index a6391248c0c..53665c8ef34 100644 --- a/src/mongo/db/commands/list_indexes.cpp +++ b/src/mongo/db/commands/list_indexes.cpp @@ -84,6 +84,9 @@ public: virtual bool slaveOverrideOk() const { return true; } + virtual bool maintenanceOk() const override { + return false; + } virtual bool adminOnly() const { return false; } diff --git a/src/mongo/db/commands/mr.cpp b/src/mongo/db/commands/mr.cpp index ced28109df0..6184ebd2835 100644 --- a/src/mongo/db/commands/mr.cpp +++ b/src/mongo/db/commands/mr.cpp @@ -1365,6 +1365,10 @@ public: return true; } + virtual bool maintenanceOk() const override { + return false; + } + std::size_t reserveBytesForReply() const override { return FindCommon::kInitReplyBufferSize; } @@ -1893,5 +1897,5 @@ public: } mapReduceFinishCommand; -} // namespace +} // namespace mr } // namespace mongo diff --git a/src/mongo/db/commands/parallel_collection_scan.cpp b/src/mongo/db/commands/parallel_collection_scan.cpp index 617bddafd04..1ba05020acb 100644 --- a/src/mongo/db/commands/parallel_collection_scan.cpp +++ b/src/mongo/db/commands/parallel_collection_scan.cpp @@ -45,8 +45,8 @@ namespace mongo { -using std::unique_ptr; using std::string; +using std::unique_ptr; using stdx::make_unique; namespace { @@ -64,10 +64,15 @@ public: virtual bool supportsWriteConcern(const BSONObj& cmd) const override { return false; } + virtual bool slaveOk() const { return true; } + virtual bool maintenanceOk() const override { + return false; + } + bool supportsNonLocalReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/pipeline_command.cpp b/src/mongo/db/commands/pipeline_command.cpp index bfc5eb99fe1..7eda4ba91a9 100644 --- a/src/mongo/db/commands/pipeline_command.cpp +++ b/src/mongo/db/commands/pipeline_command.cpp @@ -71,7 +71,9 @@ public: const BSONObj& cmdObj) const override { return !AggregationRequest::parseNs(dbName, cmdObj).isCollectionlessAggregateNS(); } - + bool maintenanceOk() const override { + return false; + } ReadWriteType getReadWriteType() const { return ReadWriteType::kRead; } diff --git a/src/mongo/s/commands/cluster_db_stats_cmd.cpp b/src/mongo/s/commands/cluster_db_stats_cmd.cpp index 9fb71f8aea6..2f787527bda 100644 --- a/src/mongo/s/commands/cluster_db_stats_cmd.cpp +++ b/src/mongo/s/commands/cluster_db_stats_cmd.cpp @@ -49,6 +49,9 @@ public: bool slaveOk() const override { return true; } + virtual bool maintenanceOk() const override { + return false; + } bool adminOnly() const override { return false; } diff --git a/src/mongo/s/commands/cluster_list_databases_cmd.cpp b/src/mongo/s/commands/cluster_list_databases_cmd.cpp index ffea8595f5a..f5f353ba921 100644 --- a/src/mongo/s/commands/cluster_list_databases_cmd.cpp +++ b/src/mongo/s/commands/cluster_list_databases_cmd.cpp @@ -46,9 +46,9 @@ namespace mongo { -using std::unique_ptr; using std::map; using std::string; +using std::unique_ptr; using std::vector; namespace { @@ -65,6 +65,10 @@ public: return true; } + virtual bool maintenanceOk() const override { + return false; + } + virtual bool adminOnly() const { return true; } diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp index a05f8521dc9..d37d8a33a8d 100644 --- a/src/mongo/s/commands/commands_public.cpp +++ b/src/mongo/s/commands/commands_public.cpp @@ -71,15 +71,15 @@ namespace mongo { -using std::unique_ptr; -using std::shared_ptr; using std::list; using std::make_pair; using std::map; using std::multimap; using std::set; +using std::shared_ptr; using std::string; using std::stringstream; +using std::unique_ptr; using std::vector; namespace { @@ -1090,6 +1090,10 @@ public: return false; } + bool maintenanceOk() const override { + return false; + } + bool run(OperationContext* opCtx, const string& dbName, const BSONObj& cmdObj, @@ -1469,7 +1473,7 @@ public: void help(stringstream& h) const override { h << "http://dochub.mongodb.org/core/geo#GeospatialIndexing-geoNearCommand"; - } + } // namespace void addRequiredPrivileges(const std::string& dbname, const BSONObj& cmdObj, @@ -1608,6 +1612,10 @@ public: return false; } + bool maintenanceOk() const override { + return false; + } + bool run(OperationContext* opCtx, const string& dbName, const BSONObj& cmdObj, @@ -1623,7 +1631,8 @@ public: return passthrough(opCtx, dbName, dbInfo.primaryId(), cmdObj, result); } -} evalCmd; +} // namespace mongo +evalCmd; class CmdListCollections final : public PublicGridCommand { public: diff --git a/src/mongo/shell/replsettest.js b/src/mongo/shell/replsettest.js index 9b509244681..52573614e29 100644 --- a/src/mongo/shell/replsettest.js +++ b/src/mongo/shell/replsettest.js @@ -1558,8 +1558,15 @@ var ReplSetTest = function(opts) { const replSetConfig = rst.getReplSetConfigFromNode ? rst.getReplSetConfigFromNode() : undefined; - rst.liveNodes.slaves.forEach(secondary => { - secondary.getDBNames().forEach(dbName => combinedDBs.add(dbName)); + rst.liveNodes.slaves.forEach(node => { + // Arbiters have no replicated data. + if (node.getDB('admin').isMaster('admin').arbiterOnly) { + print("checkDBHashesForReplSet skipping data of arbiter: " + node.host); + return; + } + print("checkDBHashesForReplSet going to check data hashes on secondary: " + + node.host); + node.getDBNames().forEach(dbName => combinedDBs.add(dbName)); }); for (var dbName of combinedDBs) { |