tsuru/docker-cluster

data race in the round robin scheduler

Closed this issue · 0 comments

detected from an internal tsuru's CI:

==================
WARNING: DATA RACE
Read by goroutine 69:
  github.com/tsuru/docker-cluster/cluster.(*roundRobin).Schedule()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/scheduler.go:43 +0x21c
  github.com/tsuru/docker-cluster/cluster.(*Cluster).CreateContainerSchedulerOpts()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/container.go:35 +0x159
  github.com/tsuru/tsuru/provision/docker.(*container).create()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:212 +0xd2f
  github.com/tsuru/tsuru/provision/docker.func·005()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:90 +0x377
  github.com/tsuru/tsuru/action.(*Pipeline).Execute()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/action/action.go:133 +0x745
  github.com/tsuru/tsuru/provision/docker.start()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:346 +0x4ec
  github.com/tsuru/tsuru/provision/docker.func·027()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:234 +0x152

Previous write by goroutine 124:
  github.com/tsuru/docker-cluster/cluster.(*roundRobin).Schedule()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/scheduler.go:44 +0x23c
  github.com/tsuru/docker-cluster/cluster.(*Cluster).CreateContainerSchedulerOpts()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/container.go:35 +0x159
  github.com/tsuru/tsuru/provision/docker.(*container).create()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:212 +0xd2f
  github.com/tsuru/tsuru/provision/docker.func·005()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:90 +0x377
  github.com/tsuru/tsuru/action.(*Pipeline).Execute()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/action/action.go:133 +0x745
  github.com/tsuru/tsuru/provision/docker.start()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:346 +0x4ec
  github.com/tsuru/tsuru/provision/docker.func·027()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:234 +0x152

Goroutine 69 (running) created at:
  github.com/tsuru/tsuru/provision/docker.addContainersWithHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:240 +0x7b4
  github.com/tsuru/tsuru/provision/docker.func·010()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:150 +0x208
  github.com/tsuru/tsuru/provision/docker.(*S).TestProvisionAddUnitsToHostForwardWithoutHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions_test.go:386 +0x751
  runtime.call16()
      /var/lib/jenkins/go/src/pkg/runtime/asm_amd64.s:360 +0x31
  reflect.Value.Call()
      /var/lib/jenkins/go/src/pkg/reflect/value.go:411 +0xed
  launchpad.net/gocheck.func·006()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:733 +0x51b
  launchpad.net/gocheck.func·004()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:628 +0xf4

Goroutine 124 (running) created at:
  github.com/tsuru/tsuru/provision/docker.addContainersWithHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:240 +0x7b4
  github.com/tsuru/tsuru/provision/docker.func·010()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:150 +0x208
  github.com/tsuru/tsuru/provision/docker.(*S).TestProvisionAddUnitsToHostForwardWithoutHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions_test.go:386 +0x751
  runtime.call16()
      /var/lib/jenkins/go/src/pkg/runtime/asm_amd64.s:360 +0x31
  reflect.Value.Call()
      /var/lib/jenkins/go/src/pkg/reflect/value.go:411 +0xed
  launchpad.net/gocheck.func·006()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:733 +0x51b
  launchpad.net/gocheck.func·004()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:628 +0xf4
==================
==================
WARNING: DATA RACE
Read by goroutine 69:
  github.com/tsuru/docker-cluster/cluster.(*roundRobin).Schedule()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/scheduler.go:47 +0x270
  github.com/tsuru/docker-cluster/cluster.(*Cluster).CreateContainerSchedulerOpts()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/container.go:35 +0x159
  github.com/tsuru/tsuru/provision/docker.(*container).create()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:212 +0xd2f
  github.com/tsuru/tsuru/provision/docker.func·005()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:90 +0x377
  github.com/tsuru/tsuru/action.(*Pipeline).Execute()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/action/action.go:133 +0x745
  github.com/tsuru/tsuru/provision/docker.start()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:346 +0x4ec
  github.com/tsuru/tsuru/provision/docker.func·027()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:234 +0x152

Previous write by goroutine 124:
  github.com/tsuru/docker-cluster/cluster.(*roundRobin).Schedule()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/scheduler.go:45 +0x258
  github.com/tsuru/docker-cluster/cluster.(*Cluster).CreateContainerSchedulerOpts()
      /tmp/gopath/tsuru/src/github.com/tsuru/docker-cluster/cluster/container.go:35 +0x159
  github.com/tsuru/tsuru/provision/docker.(*container).create()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:212 +0xd2f
  github.com/tsuru/tsuru/provision/docker.func·005()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:90 +0x377
  github.com/tsuru/tsuru/action.(*Pipeline).Execute()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/action/action.go:133 +0x745
  github.com/tsuru/tsuru/provision/docker.start()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/docker.go:346 +0x4ec
  github.com/tsuru/tsuru/provision/docker.func·027()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:234 +0x152

Goroutine 69 (running) created at:
  github.com/tsuru/tsuru/provision/docker.addContainersWithHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:240 +0x7b4
  github.com/tsuru/tsuru/provision/docker.func·010()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:150 +0x208
  github.com/tsuru/tsuru/provision/docker.(*S).TestProvisionAddUnitsToHostForwardWithoutHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions_test.go:386 +0x751
  runtime.call16()
      /var/lib/jenkins/go/src/pkg/runtime/asm_amd64.s:360 +0x31
  reflect.Value.Call()
      /var/lib/jenkins/go/src/pkg/reflect/value.go:411 +0xed
  launchpad.net/gocheck.func·006()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:733 +0x51b
  launchpad.net/gocheck.func·004()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:628 +0xf4

Goroutine 124 (running) created at:
  github.com/tsuru/tsuru/provision/docker.addContainersWithHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/provisioner.go:240 +0x7b4
  github.com/tsuru/tsuru/provision/docker.func·010()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions.go:150 +0x208
  github.com/tsuru/tsuru/provision/docker.(*S).TestProvisionAddUnitsToHostForwardWithoutHost()
      /tmp/gopath/tsuru/src/github.com/tsuru/tsuru/provision/docker/actions_test.go:386 +0x751
  runtime.call16()
      /var/lib/jenkins/go/src/pkg/runtime/asm_amd64.s:360 +0x31
  reflect.Value.Call()
      /var/lib/jenkins/go/src/pkg/reflect/value.go:411 +0xed
  launchpad.net/gocheck.func·006()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:733 +0x51b
  launchpad.net/gocheck.func·004()
      /tmp/gopath/tsuru/src/launchpad.net/gocheck/gocheck.go:628 +0xf4
==================