-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
Setting SSLDBConnector.dialError in https://github.com/mongodb/mongo-tools/blob/r3.4.2/common/db/openssl/openssl.go#L44 causes race warnings because the DialServer function may be called concurrently. See:
==================
WARNING: DATA RACE
Write at 0x00c420547b08 by goroutine 264:
github.com/10gen/mongomirror/vendor/github.com/mongodb/mongo-tools/common/db/openssl.(*SSLDBConnector).Configure.func1()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/github.com/mongodb/mongo-tools/common/db/openssl/openssl.go:44 +0x115
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoServer).Connect()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:173 +0x33d
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoServer).AcquireSocket()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:129 +0x329
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServer()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:190 +0x386
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersIteration.func1.1()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:518 +0x202
Previous write at 0x00c420547b08 by goroutine 186:
github.com/10gen/mongomirror/vendor/github.com/mongodb/mongo-tools/common/db/openssl.(*SSLDBConnector).Configure.func1()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/github.com/mongodb/mongo-tools/common/db/openssl/openssl.go:44 +0x115
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoServer).Connect()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:173 +0x33d
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoServer).AcquireSocket()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:129 +0x329
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoServer).pinger()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:304 +0x2c6
Goroutine 264 (running) created at:
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersIteration.func1()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:540 +0x17c
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersIteration()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:545 +0x5ac
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersLoop()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:355 +0x1b6
Goroutine 186 (running) created at:
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.newServer()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/server.go:89 +0x230
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).server()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:409 +0x12e
github.com/10gen/mongomirror/vendor/gopkg.in/mgo%2ev2.(*mongoCluster).syncServersIteration.func1.1()
/data/mci/09cce1e77449b3dfc85a6c39a30ccafa/src/github.com/10gen/mongomirror/vendor/gopkg.in/mgo.v2/cluster.go:517 +0x1e2
==================
Found 1 data race(s)
Removing `dialError` should fix the problem and the error from dialing will still be returned.