Skip to content

Commit 02d4572

Browse files
author
bastiantoepfer
committed
CSHARP-5419 Fix Single Node Replica Set Handling in the Driver
1 parent e4b117b commit 02d4572

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/MongoDB.Driver/Core/Clusters/ClusterFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public IClusterInternal CreateCluster()
5252
{
5353
return CreateLoadBalancedCluster(settings);
5454
}
55-
else if (settings.DirectConnection)
55+
else if (settings.DirectConnection || settings.EndPoints.Count == 1)
5656
{
5757
return CreateSingleServerCluster(settings);
5858
}

src/MongoDB.Driver/Core/Clusters/SingleServerCluster.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal sealed class SingleServerCluster : Cluster
3232
public SingleServerCluster(ClusterSettings settings, IClusterableServerFactory serverFactory, IEventSubscriber eventSubscriber, ILoggerFactory loggerFactory)
3333
: base(settings, serverFactory, eventSubscriber, loggerFactory)
3434
{
35-
Ensure.That(settings.DirectConnection, $"DirectConnection mode is not supported for {nameof(SingleServerCluster)}.");
35+
Ensure.That(!settings.DirectConnection, $"DirectConnection mode is not supported for {nameof(SingleServerCluster)}.");
3636
Ensure.That(settings.SrvMaxHosts == 0, "srvMaxHosts cannot be used with a single server cluster.");
3737
Ensure.IsEqualTo(settings.EndPoints.Count, 1, nameof(settings.EndPoints.Count));
3838

@@ -121,7 +121,8 @@ private void ServerDescriptionChanged(object sender, ServerDescriptionChangedEve
121121
}
122122

123123
newClusterDescription = newClusterDescription.WithServerDescription(newServerDescription);
124-
124+
if(newClusterDescription.Type == ClusterType.Unknown)
125+
newClusterDescription = newClusterDescription.WithType(newServerDescription.Type.ToClusterType());
125126
var shouldClusterDescriptionChangedEventBePublished = !args.OldServerDescription.SdamEquals(args.NewServerDescription);
126127
UpdateClusterDescription(newClusterDescription, shouldClusterDescriptionChangedEventBePublished);
127128
}

0 commit comments

Comments
 (0)