[SERVER-18292] Re-enable all tests tagged with SERVER-18292 Created: 01/May/15  Updated: 06/Dec/17  Resolved: 28/Jun/17

Status: Closed
Project: Core Server
Component/s: Networking
Affects Version/s: None
Fix Version/s: 3.5.10

Type: Task Priority: Major - P3
Reporter: Adam Midvidy Assignee: Mathias Stearn
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-18814 ClusterPipelineCmd calls find on $cmd... Closed
depends on SERVER-18236 Refactor metadata to use OP_COMMAND m... Closed
Duplicate
is duplicated by SERVER-19801 Support OP_COMMAND protocol in mongos Closed
Backwards Compatibility: Fully Compatible
Sprint: Platform 4 06/05/15, Platform 5 06/26/16, Repl 2017-05-08, Repl 2017-05-29, Repl 2017-06-19, Repl 2017-07-10
Participants:

 Description   

Some tests were disabled pending implementation of OP_COMMAND in mongos. Since we have decided not to do that and instead use OP_MSG in both mongos and mongod, we need to ensure that the disabled tests are re-enabled.

Original title and description:Implement OP_COMMAND in mongos

Depends on the metadata refactor as that will make it very simple to upconvert/downconvert between different message types.

This will include implementing autodetection of support for OP_COMMAND in the C++ driver, and multiversion testing.



 Comments   
Comment by Githook User [ 28/Jun/17 ]

Author:

{u'username': u'RedBeard0531', u'name': u'Mathias Stearn', u'email': u'mathias@10gen.com'}

Message: SERVER-18292 Re-enable tests tagged with SERVER-18292
Branch: master
https://github.com/mongodb/mongo/commit/227c848b6ab7055e56745705eb708af40bb73320

Comment by Githook User [ 28/Jun/17 ]

Author:

{u'username': u'RedBeard0531', u'name': u'Mathias Stearn', u'email': u'mathias@10gen.com'}

Message: SERVER-18292 Re-enable tests tagged with SERVER-18292
Branch: master
https://github.com/mongodb/mongo/commit/227c848b6ab7055e56745705eb708af40bb73320

Comment by Robert Guo (Inactive) [ 10/Sep/15 ]

adam.midvidy There's a comment in the sharding jscore passthrough suite to remove invalid_db_name.js and validate_cmd_ns.js from the exclusion list once this ticket is done. I tried it in a recent build but both tests seem to be failing. Reading the comments in this ticket, it looks like some of the functionality was cut, so should the comment in the yml file be updated?

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 expose protocol type of RPC classes and
check that they match in runCommandWithMetadata
Branch: master
https://github.com/mongodb/mongo/commit/49c54afb7abfeceb0f9f03ed59df69b9cf22a5e7

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18236 SERVER-18292 send impersonated users and roles via metadata object
Branch: master
https://github.com/mongodb/mongo/commit/4eb15b34d157e2719fc9034f5956b698d96ef64e

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 SERVER-18236 read ReadPreference off of metadata in DBClientRS
Branch: master
https://github.com/mongodb/mongo/commit/5014f223f0692ca552858d04a5efe1958c3367fb

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 support OP_COMMAND in commands executed with DBClientMultiCommand
Branch: master
https://github.com/mongodb/mongo/commit/b5e98006ec7b05d69e9defedce7fe9190db3b60c

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 support OP_COMMAND in commands executed using a DBClientCursor
Branch: master
https://github.com/mongodb/mongo/commit/0641c637933aef4290963d99fe9cf9c5509a29ef

Comment by Githook User [ 16/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18236 SERVER-18292 send impersonated users and roles via metadata object
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/58959abf153820d10413dcb317e47623c6b04314

Comment by Kaloian Manassiev [ 08/Jun/15 ]

Unfortunately we have no plans of removing either of those abstractions for 3.2.

1 cannot be done and not point in doing it for 3.2 when we can just get rid of the entire LCM in 3.4
2 We have not budgeted any time for removing it so it has to stay. Also necessary for queries against the legacy config server.
3 Future I think it's also used by the ParallelSortedCursor if I am not mistaken. If it is not, then I don't know if it can be easily replaced.
4 Might be simpler to switch to use the remote command runner, but we have not budgeted any time to do that.

I think these should remain as they are in 3.2 (given that we have compatiblity support) and then most of them will go away in 3.4.

Comment by Randolph Tan [ 08/Jun/15 ]

FYI: Any command that uses Future does not support stale config retry correctly (it should be using Strategy::commandOp).

Comment by Adam Midvidy [ 08/Jun/15 ]

Methods that MongoS uses to send commands to shards that bypass DBClientWithCommands::runCommand:

  1. DBClientMultiCommand: used by the write commands, legacy catalog manager and Strategy::commandOp.
    It currently manually constructs an OP_QUERY message on $cmd.
  2. ParallelSortClusteredCursor - used by sharded mapreduce ("MapReduceFinishCommand'), the query path on sharded clusters, and to implement ShardedClientCursor (also used in mapreduce). Uses a manual find on the $cmd namespace, and appears to depend on functionality of DBClientCursor.
  3. Future - used by RunOnAllShardsCommand which is used to implement other commands like currentOp that fan out to all shards. Currently constructs a a DBClientCursor on the $cmd namespace, OR executes a runCommand dependent on if the connection supports lazy connections.
  4. ClusterPipelineCommand::aggRunCommand - currently does a manual find on $cmd namespace so it can see which host actually executed the command so it knows what server to call getMore on. See SERVER-18814 for details

kaloian.manassiev and renctan, which of these abstractions are going to be removed as part of the mongos refactor, and which are going to need to support OP_COMMAND? cc acm schwerin

Comment by Githook User [ 05/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 remove global Strategy instance
Branch: master
https://github.com/mongodb/mongo/commit/de6043e0e7bad7a2bf372858658eed91d4dfdabd

Comment by Githook User [ 05/Jun/15 ]

Author:

{u'username': u'amidvidy', u'name': u'Adam Midvidy', u'email': u'amidvidy@gmail.com'}

Message: SERVER-18292 move runCommands to commands.cpp

Generated at Thu Feb 08 03:47:12 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.