Details
-
Bug
-
Resolution: Works as Designed
-
Major - P3
-
None
-
None
Description
If connectionUri contains replicaSet, client bad resolved server hosts.
Follow simple code:
String uri = "mongodb://user:password@182.18.4.3:27017/dbname?replicaSet=rs0"; |
MongoClient client = MongoClients.create(uri);
|
MongoDatabase dbTest = client.getDatabase("test"); |
System.out.println(dbTest.listCollectionNames().first());
|
.. throws exception (look address: address=127.0.0.1:27019):
Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches com.mongodb.client.internal.MongoClientDelegate$1@747f281. Client view of cluster state is {type=REPLICA_SET, servers=[{address=127.0.0.1:27019, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused}}, {address=127.0.0.1:27018, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused}}, {address=127.0.0.1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused}}]
|
at com.mongodb.internal.connection.BaseCluster.createTimeoutException(BaseCluster.java:405)
|
at com.mongodb.internal.connection.BaseCluster.selectServer(BaseCluster.java:118)
|
at com.mongodb.internal.connection.AbstractMultiServerCluster.selectServer(AbstractMultiServerCluster.java:50)
|
at com.mongodb.client.internal.MongoClientDelegate.getConnectedClusterDescription(MongoClientDelegate.java:139)
|
at com.mongodb.client.internal.MongoClientDelegate.createClientSession(MongoClientDelegate.java:94)
|
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.getClientSession(MongoClientDelegate.java:276)
|
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:176)
|
at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:135)
|
at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92)
|
at com.mongodb.client.internal.MongoIterableImpl.first(MongoIterableImpl.java:103)
|
at com.mongodb.client.internal.MappingIterable.first(MappingIterable.java:50)
|
at test.main(test.java:11)
|
|