Details
-
Bug
-
Resolution: Done
-
Major - P3
-
None
-
2.0
-
None
Description
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.