Details
Description
SERVER-24611 (et al) implemented client metadata in 3.4+. Before upgrading the server from 3.2 to 3.4, users must first upgrade their drivers. However, since 3.2 lacks support for client metadata, verifying that all connecting drivers have been upgraded might be difficult.
This ticket is to request that 3.2 logs when a driver supplies client metadata in the isMaster command (but without bothering doing any parsing, verification, or later usage, etc). This will allow users to verify that drivers have been correctly upgraded prior to upgrading the server. I'm imagining very simple code along these lines (and similar in s/commands/cluster_is_master_cmd.cpp):
diff --git a/src/mongo/db/repl/replication_info.cpp b/src/mongo/db/repl/replication_info.cpp
|
index 50e8480..034c954 100644
|
--- a/src/mongo/db/repl/replication_info.cpp
|
+++ b/src/mongo/db/repl/replication_info.cpp
|
@@ -215,26 +215,31 @@ public:
|
CmdIsMaster() : Command("isMaster", true, "ismaster") {}
|
virtual bool run(OperationContext* txn,
|
const string&,
|
BSONObj& cmdObj,
|
int,
|
string& errmsg,
|
BSONObjBuilder& result) {
|
/* currently request to arbiter is (somewhat arbitrarily) an ismaster request that is not
|
authenticated.
|
*/
|
if (cmdObj["forShell"].trueValue())
|
LastError::get(txn->getClient()).disable();
|
|
+ BSONElement element = cmdObj["client"];
|
+ if (!element.eoo()) {
|
+ log << "client supplied metadata: " << element.jsonString(false);
|
+ }
|
+
|
appendReplicationInfo(txn, result, 0);
|
|
if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::CSRS) {
|
result.append("configsvr", 1);
|
} else if (serverGlobalParams.configsvrMode == CatalogManager::ConfigServerMode::SCCC) {
|
result.append("configsvr", 0);
|
}
|
|
result.appendNumber("maxBsonObjectSize", BSONObjMaxUserSize);
|
result.appendNumber("maxMessageSizeBytes", MaxMessageSizeBytes);
|
result.appendNumber("maxWriteBatchSize", BatchedCommandRequest::kMaxWriteBatchSize);
|
result.appendDate("localTime", jsTime());
|
result.append("maxWireVersion", WireSpec::instance().maxWireVersionIncoming); |
Attachments
Issue Links
- is related to
-
SERVER-36778 Make 3.2 client metadata log messages match 3.4+ format
-
- Closed
-