cloudfoundry-attic / consul-release

This is a BOSH release for consul.
Apache License 2.0
10 stars 30 forks source link

confab agent unit tests have a race condition #25

Closed zankich closed 8 years ago

zankich commented 8 years ago

The confab/agent unit tests will occasionally cause a data race error.

You can reproduce this by running

$ ./src/confab/scripts/test -untilItFails src/confab/agent/

And eventually you'll see:

Running Suite: agent
====================
Random Seed: 1466722493 - Will randomize all specs
Will run 43 of 43 specs

••••••••••••••••••••••••••••••••••••==================
WARNING: DATA RACE
Write by goroutine 34:
  github.com/cloudfoundry-incubator/consul-release/src/confab/fakes.(*Logger).Info()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/fakes/logger.go:24 +0x20d
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent.(*Runner).Wait()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner.go:135 +0x720
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1.4.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:211 +0x32

Previous read by goroutine 18:
  runtime.convT2E()
      /usr/local/opt/go/libexec/src/runtime/iface.go:128 +0x0
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1.6()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:228 +0x2fa
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.By()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:386 +0x220
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:248 +0x5ed
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:109 +0xbb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:63 +0xdb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*ItNode).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node.go:25 +0x77
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).runSample()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:167 +0x7b1
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:118 +0xf4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:144 +0x2f2
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:61 +0xbd
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite.(*Suite).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:59 +0x34f
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecsWithCustomReporters()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:207 +0x3c7
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:188 +0x41a
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.TestAgent()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/init_test.go:23 +0xa3
  testing.tRunner()
      /usr/local/opt/go/libexec/src/testing/testing.go:473 +0xdc

Goroutine 34 (running) created at:
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1.4()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:215 +0x82
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.By()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:386 +0x220
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:217 +0x3f4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:109 +0xbb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:63 +0xdb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*ItNode).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node.go:25 +0x77
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).runSample()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:167 +0x7b1
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:118 +0xf4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:144 +0x2f2
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:61 +0xbd
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite.(*Suite).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:59 +0x34f
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecsWithCustomReporters()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:207 +0x3c7
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:188 +0x41a
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.TestAgent()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/init_test.go:23 +0xa3
  testing.tRunner()
      /usr/local/opt/go/libexec/src/testing/testing.go:473 +0xdc

Goroutine 18 (running) created at:
  testing.RunTests()
      /usr/local/opt/go/libexec/src/testing/testing.go:582 +0xae2
  testing.(*M).Run()
      /usr/local/opt/go/libexec/src/testing/testing.go:515 +0x11d
  main.main()
      github.com/cloudfoundry-incubator/consul-release/src/confab/agent/_test/_testmain.go:56 +0x210
==================
cf-gitbot commented 8 years ago

We have created an issue in Pivotal Tracker to manage this:

https://www.pivotaltracker.com/story/show/122168793

The labels on this github issue will be updated when the story is started.

christianang commented 8 years ago

Thanks, the issue has been fixed in 435c2d4548275925aa78aec0515b349641fe0d43. 💥

zankich commented 8 years ago

It looks like this is still happening on 38bd729

[1468018424] agent - 43/43 specs •••••••••••••••••••••==================
WARNING: DATA RACE
Write by goroutine 18:
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:47 +0x599
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:109 +0xbb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:63 +0xdb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*SetupNode).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/setup_nodes.go:14 +0x77
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).runSample()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:149 +0x2f0
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:118 +0xf4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:144 +0x2f2
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:61 +0xbd
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite.(*Suite).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:59 +0x34f
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecsWithCustomReporters()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:207 +0x3c7
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:188 +0x41a
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.TestAgent()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/init_test.go:23 +0xa3
  testing.tRunner()
      /usr/local/opt/go/libexec/src/testing/testing.go:473 +0xdc

Previous read by goroutine 25:
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent.(*Runner).Wait()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner.go:135 +0x6ca
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1.4.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:211 +0x32

Goroutine 18 (running) created at:
  testing.RunTests()
      /usr/local/opt/go/libexec/src/testing/testing.go:582 +0xae2
  testing.(*M).Run()
      /usr/local/opt/go/libexec/src/testing/testing.go:515 +0x11d
  main.main()
      github.com/cloudfoundry-incubator/consul-release/src/confab/agent/_test/_testmain.go:56 +0x210

Goroutine 25 (running) created at:
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1.4()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:215 +0x82
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.By()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:386 +0x220
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.glob.func5.5.1()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/runner_test.go:217 +0x3f4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:109 +0xbb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:63 +0xdb
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*ItNode).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node.go:25 +0x77
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).runSample()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:167 +0x7b1
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec.(*Spec).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/spec/spec.go:118 +0xf4
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:144 +0x2f2
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:61 +0xbd
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite.(*Suite).Run()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:59 +0x34f
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecsWithCustomReporters()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:207 +0x3c7
  github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo.RunSpecs()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:188 +0x41a
  github.com/cloudfoundry-incubator/consul-release/src/confab/agent_test.TestAgent()
      /Users/pivotal/go/src/github.com/cloudfoundry-incubator/consul-release/src/confab/agent/init_test.go:23 +0xa3
  testing.tRunner()
      /usr/local/opt/go/libexec/src/testing/testing.go:473 +0xdc
==================
•••••••••••••••••••••• SUCCESS! 2.124205845s PASS
Found 1 data race(s)
cf-gitbot commented 8 years ago

We have created an issue in Pivotal Tracker to manage this:

https://www.pivotaltracker.com/story/show/125966009

The labels on this github issue will be updated when the story is started.