Fail to connect if seed name is different than host name

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: 2.0
    • Component/s: Connectivity
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Repro:

      In a replication set, mongodb service is listening with hostname(which resolves to a private IP in a virtual network).
      From client side, the seed list is composed of public DNS names.
      then C# driver fails to connect, with below error:

      Error:

           at MongoDB.Driver.Core.Servers.ClusterableServer.<HeartbeatAsync>d__d.MoveNext()" }, { ServerId: "{ ClusterId : 1, EndPoint : {color:red}"Unspecified/vmsec0521e:27000"{color} }", EndPoint: "Unspecified/vmsec0521e:27000", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.Net.Sockets.SocketException: No such host is known
         at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
      

      Code:

                  var cnnString = "mongodb://<userName>:<pwd>@vmpri0521e.westus.cloudapp.azure.com:27000, {color:red}vmsec0521e.westus.cloudapp.azure.com:27000{color}/testoc?replicaSet=rs0521e";
                  var client = new MongoClient(cnnString);
                  var db = client.GetDatabase("testoc");
                  var col = db.GetCollection<Post>("Posts");
                  var posts = await col.Find(e => true).ToListAsync();
      

      rs.conf information

      rs0521e:PRIMARY> rs.conf()
      {
              "_id" : "rs0521e",
              "version" : 7,
              "members" : [
                      {
                              "_id" : 0,
                              "host" : "vmpri0521e:27000",
                              "arbiterOnly" : false,
                              "buildIndexes" : true,
                              "hidden" : false,
                              "priority" : 5,
                              "tags" : {
      
                              },
                              "slaveDelay" : 0,
                              "votes" : 1
                      },
                      {
                              "_id" : 1,
                              "host" : "vmsec0521e:27000",
                              "arbiterOnly" : false,
                              "buildIndexes" : true,
                              "hidden" : false,
                              "priority" : 1,
                              "tags" : {
      
                              },
                              "slaveDelay" : 0,
                              "votes" : 1
                      },
                      {
                              "_id" : 2,
                              "host" : "vmarb0521e:27000",
                              "arbiterOnly" : true,
                              "buildIndexes" : true,
                              "hidden" : false,
                              "priority" : 0,
                              "tags" : {
      
                              },
                              "slaveDelay" : 0,
                              "votes" : 1
                      }
              ],
              "settings" : {
                      "chainingAllowed" : true,
                      "heartbeatTimeoutSecs" : 10,
                      "getLastErrorModes" : {
      
                      },
                      "getLastErrorDefaults" : {
                              "w" : 1,
                              "wtimeout" : 0
                      }
              }
      }
      

      rs.status information:

      rs0521e:PRIMARY> rs.status()
      {
              "set" : "rs0521e",
              "date" : ISODate("2015-05-22T18:18:20.610Z"),
              "myState" : 1,
              "members" : [
                      {
                              "_id" : 0,
                              "name" : "vmpri0521e:27000",
                              "health" : 1,
                              "state" : 1,
                              "stateStr" : "PRIMARY",
                              "uptime" : 10942,
                              "optime" : Timestamp(1432308408, 1),
                              "optimeDate" : ISODate("2015-05-22T15:26:48Z"),
                              "electionTime" : Timestamp(1432307801, 1),
                              "electionDate" : ISODate("2015-05-22T15:16:41Z"),
                              "configVersion" : 7,
                              "self" : true
                      },
                      {
                              "_id" : 1,
                              "name" : "vmsec0521e:27000",
                              "health" : 1,
                              "state" : 2,
                              "stateStr" : "SECONDARY",
                              "uptime" : 10292,
                              "optime" : Timestamp(1432308408, 1),
                              "optimeDate" : ISODate("2015-05-22T15:26:48Z"),
                              "lastHeartbeat" : ISODate("2015-05-22T18:18:20.351Z"),
                              "lastHeartbeatRecv" : ISODate("2015-05-22T18:18:19.195Z"),
                              "pingMs" : 1,
                              "configVersion" : 7
                      },
                      {
                              "_id" : 2,
                              "name" : "vmarb0521e:27000",
                              "health" : 1,
                              "state" : 7,
                              "stateStr" : "ARBITER",
                              "uptime" : 10292,
                              "lastHeartbeat" : ISODate("2015-05-22T18:18:20.026Z"),
                              "lastHeartbeatRecv" : ISODate("2015-05-22T18:18:18.991Z"),
                              "pingMs" : 1,
                              "configVersion" : 7
                      }
              ],
              "ok" : 1
      }
      

      More Information:

      Not repro in NodeJs driver with same connection string. So looks like this is a C# driver issue.

            Assignee:
            Unassigned
            Reporter:
            tryshi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: