Uploaded image for project: 'MongoDB ETL Tools'
  1. MongoDB ETL Tools
  2. TOOLS-1633

Setting SSLDBConnector.dialError causes data race warnings

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.6.0-rc0
    • Component/s: None
    • Labels:
      None

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              shane.harvey Shane Harvey
              Reporter:
              shane.harvey Shane Harvey
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: