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

Config server reports that it is in replica set mode, but we are still using the legacy SCCC protocol for config server communication

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Affects Version/s: 3.2.0
    • Component/s: Sharding
    • Labels:
      None
    • ALL
    • Hide

      Just setup a sharded cluster following the 3.2 normal guide and instead of using:

      rs.initiate( {
         _id: "configReplSet",
         configsvr: true,
         members: [
            { _id: 0, host: "<host1>:<port1>" },
            { _id: 1, host: "<host2>:<port2>" },
            { _id: 2, host: "<host3>:<port3>" }
         ]
      } )
      

      just add the first one and then the following 2 separately:

      rs.initiate( {
         _id: "configReplSet",
         configsvr: true,
         members: [
            { _id: 0, host: "jasoares-mbp:27019" },
         ]
      } );
      rs.add({ host: 'jasoares-mbp:27020' });
      rs.add({ host: 'jasoares-mbp:27021' })
      

      The rest is just the normal configuration files similar to instructed on the guide:

      Config Server configuration file:

      systemLog: 
        destination: file
        path: '/usr/local/var/log/mongodb/mongodcfg0.log'
        logAppend: true
      storage: 
        dbPath: '/usr/local/var/mongodcfg0'
      processManagement: 
        fork: true
      sharding: 
        clusterRole: configsvr
      replication: 
        replSetName: configReplSet
      net: 
        bindIp: 
          - 127.0.0.1
        port: 27019
      

      Config Server Conf:

      {
      	"_id" : "configReplSet",
      	"version" : 3,
      	"configsvr" : true,
      	"protocolVersion" : NumberLong(1),
      	"members" : [
      		{
      			"_id" : 0,
      			"host" : "jasoares-mbp:27019",
      			"arbiterOnly" : false,
      			"buildIndexes" : true,
      			"hidden" : false,
      			"priority" : 1,
      			"tags" : {
      				
      			},
      			"slaveDelay" : NumberLong(0),
      			"votes" : 1
      		},
      		{
      			"_id" : 1,
      			"host" : "jasoares-mbp:27020",
      			"arbiterOnly" : false,
      			"buildIndexes" : true,
      			"hidden" : false,
      			"priority" : 1,
      			"tags" : {
      				
      			},
      			"slaveDelay" : NumberLong(0),
      			"votes" : 1
      		},
      		{
      			"_id" : 2,
      			"host" : "jasoares-mbp:27021",
      			"arbiterOnly" : false,
      			"buildIndexes" : true,
      			"hidden" : false,
      			"priority" : 1,
      			"tags" : {
      				
      			},
      			"slaveDelay" : NumberLong(0),
      			"votes" : 1
      		}
      	],
      	"settings" : {
      		"chainingAllowed" : true,
      		"heartbeatIntervalMillis" : 2000,
      		"heartbeatTimeoutSecs" : 10,
      		"electionTimeoutMillis" : 10000,
      		"getLastErrorModes" : {
      			
      		},
      		"getLastErrorDefaults" : {
      			"w" : 1,
      			"wtimeout" : 0
      		}
      	}
      }
      
      Show
      Just setup a sharded cluster following the 3.2 normal guide and instead of using: rs.initiate( { _id: "configReplSet" , configsvr: true , members: [ { _id: 0, host: "<host1>:<port1>" }, { _id: 1, host: "<host2>:<port2>" }, { _id: 2, host: "<host3>:<port3>" } ] } ) just add the first one and then the following 2 separately: rs.initiate( { _id: "configReplSet" , configsvr: true , members: [ { _id: 0, host: "jasoares-mbp:27019" }, ] } ); rs.add({ host: 'jasoares-mbp:27020' }); rs.add({ host: 'jasoares-mbp:27021' }) The rest is just the normal configuration files similar to instructed on the guide: Config Server configuration file: systemLog: destination: file path: '/usr/local/var/log/mongodb/mongodcfg 0 .log' logAppend: true storage: dbPath: '/usr/local/var/mongodcfg 0 ' processManagement: fork: true sharding: clusterRole: configsvr replication: replSetName: configReplSet net: bindIp: - 127 . 0 . 0 . 1 port: 27019 Config Server Conf: { "_id" : "configReplSet" , "version" : 3, "configsvr" : true , "protocolVersion" : NumberLong(1), "members" : [ { "_id" : 0, "host" : "jasoares-mbp:27019" , "arbiterOnly" : false , "buildIndexes" : true , "hidden" : false , "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 1, "host" : "jasoares-mbp:27020" , "arbiterOnly" : false , "buildIndexes" : true , "hidden" : false , "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 2, "host" : "jasoares-mbp:27021" , "arbiterOnly" : false , "buildIndexes" : true , "hidden" : false , "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 } ], "settings" : { "chainingAllowed" : true , "heartbeatIntervalMillis" : 2000, "heartbeatTimeoutSecs" : 10, "electionTimeoutMillis" : 10000, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 } } }

      When making a fresh 3.2 deployment on my development mac with 3 new and clean WiredTiger CSRS config servers I keep getting the following error messages on mongos as soon as any balancing starts to occur:

      Unable to find source-code formatter for language: txt. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      2016-01-12T01:03:12.671+0000 I SHARDING [Balancer] caught exception while doing balance: Need to swap sharding catalog manager.  Config server reports that it is in replica set mode, but we are still using the legacy SCCC protocol for config server communication
      2016-01-12T01:03:12.671+0000 I SHARDING [Balancer] about to log metadata event into actionlog: { _id: "jasoares-mbp.local-2016-01-12T01:03:12.671+0000-569450d00b155d340d026352", server: "jasoares-mbp.local", clientAddr: "", time: new Date(1452560592671), what: "balancer.round", ns: "", details: { executionTimeMillis: 31, errorOccured: true, errmsg: "Need to swap sharding catalog manager.  Config server reports that it is in replica set mode, but we are still using the legacy SCCC protocol for conf..." } }
      

      No config server configurations has the flag configsvrMode: sccc present.
      Config server conf contains "protocolVersion" : NumberLong(1).

      Just as I was writing this very issue I noticed I did something different that than said on the guide, I did not add the 3 hosts when initiating the CSRS, I added just one and then added the other two separately using

      rs.add({ host: 'jasoares-mbp:27020' })
      

      When I restarted all over again and did the 3 at once my problems were fixed, but the question remains, why wouldn't it work. I ended up submitting the issue as I see others doing the same.

            Assignee:
            spencer@mongodb.com Spencer Brody (Inactive)
            Reporter:
            jasoares João Soares
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: