Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
Fully Compatible
-
ALL
-
-
Platforms 2016-11-21
Description
The wire_version library, which is linked into mongo, mongod, and mongos, has a static singleton instance of WireSpec, which defines the incoming and outgoing wire protocol versions of the process:
Mongod and mongos both have code for initializing these wire versions:
The mongo shell, however, has no such initialization. The object will be zero-initialized, which means that the shell's range of outgoing wire protocol versions is [0, 0]. This is incorrect, because the shell actually supports range [0, 5]. This bug has not yet manifested because all existing versions of mongod and mongos include 0 in their range of supported incoming wire versions. However, if a future version were to bump the minimum incoming wire version, older versions of the shell would refuse to connect.