Details
-
Bug
-
Resolution: Gone away
-
Major - P3
-
None
-
None
-
None
-
None
-
Mongo Go Driver v1.4.2, running inside go-alpine docker image
Description
We're running a Go app (go driver v1.4.2) along with a 3 node replica set (using Mongodb helm chart) on our Kubernetes cluster.
Our app is unable to connect to the replica set without passing "connect=direct" in the URI. We're seeing the following error in the app:
{{2020/11/03 05:15:40 Failed to read from db due to : server selection error: server selection timeout, current topology: { Type: ReplicaSetNoPrimary, Servers: [
Unknown macro: { Addr}, { Addr: payroll-mongodb-primary-0.payroll-mongodb-headless.mongodb.svc.cluster.local:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection() : connection(payroll-mongodb-primary-0.payroll-mongodb-headless.mongodb.svc.cluster.local:27017[-127]) incomplete read of message header: read tcp 192.168.191.75:35974->192.168.162.50:27017: read: connection reset by peer }, ] }}}
When browsing through the logs on our replica set primary, we came across this error:
"2020-11-03T05:15:26.934+0000 I NETWORK [conn72847] end connection 192.168.191.75:35340 (18 connections now open)","2020-11-03T05:15:27.433+0000 I NETWORK [listener] connection accepted from 192.168.191.75:35360 #72848 (19 connections now open)","2020-11-03T05:15:27.434+0000 I NETWORK [conn72848] Error receiving request from client: SSLHandshakeFailed: SSL handshake received but server is started without SSL support. Ending connection from 192.168.191.75:35360 (connection id: 72848)"
So it looks like the client is sending SSL handshakes to the server. We've tried passing `ssl=false` in the URI however that did not change the behaviour.