-
Type: Bug
-
Resolution: Duplicate
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
(copied to CRM)
go.mod
module main
go 1.16
require go.mongodb.org/mongo-driver v1.7.1 // indirect
main.go
Unable to find source-code formatter for language: golang. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
package main import ( "context" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/readpref" "time" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017/?minPoolSize=5")) if err != nil { panic(err) } err = client.Ping(ctx, readpref.Primary()) if err != nil { panic(err) } }
Running the above with go run -race main.go will produce:
================== WARNING: DATA RACE Read at 0x00c0001dae00 by main goroutine: go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*pool).stale() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:199 +0x235 go.mongodb.org/mongo-driver/x/mongo/driver/topology.connectionExpiredFunc() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:97 +0x1e5 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*resourcePool).Get() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/resource_pool.go:125 +0x20c go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*pool).get() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:388 +0x3f9 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*Server).Connection() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/server.go:268 +0xf4 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*SelectedServer).Connection() <autogenerated>:1 +0x78 go.mongodb.org/mongo-driver/x/mongo/driver.Operation.getServerAndConnection() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/operation.go:246 +0x113 go.mongodb.org/mongo-driver/x/mongo/driver.Operation.Execute() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/operation.go:301 +0x117 go.mongodb.org/mongo-driver/x/mongo/driver/operation.(*Command).Execute() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/operation/command.go:104 +0x34e go.mongodb.org/mongo-driver/mongo.(*Database).RunCommand() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/mongo/database.go:203 +0x284 go.mongodb.org/mongo-driver/mongo.(*Client).Ping() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/mongo/client.go:265 +0x23a main.main() /home/alex/Workspace/go1/main.go:22 +0x1ca Previous write at 0x00c0001dae00 by goroutine 14: go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*connection).connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/connection.go:231 +0x106b Goroutine 14 (finished) created at: go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*pool).connectionInitFunc() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:134 +0xaf go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*pool).connectionInitFunc-fm() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:128 +0x4a go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*resourcePool).add() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/resource_pool.go:102 +0x1fc go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*resourcePool).Maintain() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/resource_pool.go:210 +0x26f go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*resourcePool).initialize() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/resource_pool.go:95 +0x124 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*pool).connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/pool.go:208 +0xaa go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*Server).Connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/server.go:215 +0x239 go.mongodb.org/mongo-driver/x/mongo/driver/topology.ConnectServer() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/server.go:136 +0xe9 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*Topology).addServer() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/topology.go:686 +0x1a6 go.mongodb.org/mongo-driver/x/mongo/driver/topology.(*Topology).Connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/x/mongo/driver/topology/topology.go:213 +0x10af go.mongodb.org/mongo-driver/mongo.(*Client).Connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/mongo/client.go:156 +0x6fb go.mongodb.org/mongo-driver/mongo.Connect() /home/alex/.gvm/pkgsets/go1.16.7/global/pkg/mod/go.mongodb.org/mongo-driver@v1.7.1/mongo/client.go:106 +0x90 main.main() /home/alex/Workspace/go1/main.go:17 +0x16e ================== Found 1 data race(s) exit status 66
Race condition exists for any value of minPoolSize greater than 0.
- duplicates
-
GODRIVER-2109 Race condition in staleness checks if connection has not finished connecting
- Closed