-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Labels:None
Downstream teams should confirm that their code will never issue the "availableQueryOptions" command against a 5.2 mongod or mongos. This patch removes support for "availableQueryOptions" from mongos. The "availableQueryOptions" command is scheduled for full deletion in SERVER-60892, which should be implemented for 6.1 after we have branched for the 6.0 long term support release.
We still document this command, even though it is marked as internal: https://docs.mongodb.com/upcoming/reference/command/availableQueryOptions/#mongodb-dbcommand-dbcmd.availableQueryOptions. We should remove the documentation for it. (The existing documentation is inaccurate anyway, since the command was previously available on both mongos and mongod. But this is beside the point.)
Description of Linked Ticket
When DBClientConnection is asked by a caller to run an exhaust query, it has logic to check that the remote node supports exhaust. This is implemented by running the "availableQueryOptions" command against the remote node. We should remove this logic from the internal client for a few reasons:
- Feature discovery has long been implemented based on the minWireVersion and maxWireVersion returned by the "hello" command on connection handshake. The "availableQueryOptions" command appears to be an outdated feature discovery mechanism that has been replaced by the wire version.
- Only the internal client uses "availableQueryOptions". Drivers do not. Therefore, the "availableQueryOptions" command can itself be removed once it is no longer used internally.
- All mongod versions going back to at least 3.0 support exhaust. Therefore, a 5.1 or 5.2 node will never have to communicate with a node that does not support exhaust. The check as to whether exhaust is supported is completely unnecessary.
- documents
-
SERVER-60749 Change internal client to stop issuing the "availableQueryOptions" command
- Closed