Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-36066

"sleep" command not available with mongos with enableTestCommands=1

    XMLWordPrintable

    Details

      Description

      As part of out test suite, we use enableTestCommands to be able to use things like the sleep command. When running our tests, we verify for tests that make use of sleep that enableTestCommands is enabled by running getParameter against the (primary) server.

      I've recently extended our test suite to also cover a sharded cluster, and now have run into the problem. Even though calling {{ getParameter : 1, parameter: "enableTestCommands" }} on mongos returns {{ ok: 1 }}, the sleep command is not available, and I get the following error when attempting to run it.

      This is my full command transcript of what the test internally would run:

      mongos> db.runCommand( { getParameter: 1, 'enableTestCommands' : 1 } );
      {
      	"enableTestCommands" : true,
      	"ok" : 1,
      	"operationTime" : Timestamp(1531318115, 1),
      	"$clusterTime" : {
      		"clusterTime" : Timestamp(1531318115, 1),
      		"signature" : {
      			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
      			"keyId" : NumberLong(0)
      		}
      	}
      }
      mongos> db.runCommand( { sleep: 1 } );
      {
      	"ok" : 0,
      	"errmsg" : "no such cmd: sleep",
      	"code" : 59,
      	"codeName" : "CommandNotFound",
      	"operationTime" : Timestamp(1531318125, 1),
      	"$clusterTime" : {
      		"clusterTime" : Timestamp(1531318125, 1),
      		"signature" : {
      			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
      			"keyId" : NumberLong(0)
      		}
      	}
      }
      

      When connecting to a standalone node, the following is returned (as expected):

      > db.runCommand( { getParameter: 1, 'enableTestCommands' : 1 } );
      {
      	"enableTestCommands" : true,
      	"ok" : 1,
      	"$configServerState" : {
      		"opTime" : {
      			"ts" : Timestamp(1531318185, 1),
      			"t" : NumberLong(1)
      		}
      	}
      }
      > db.runCommand( { sleep: 1 } );
      {
      	"ok" : 1,
      	"$configServerState" : {
      		"opTime" : {
      			"ts" : Timestamp(1531318201, 1),
      			"t" : NumberLong(1)
      		}
      	}
      }
      
      

        Attachments

          Activity

            People

            Assignee:
            backlog-server-sharding Backlog - Sharding Team
            Reporter:
            derick Derick Rethans
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated: