api/unitassigner: data race

Bug #1516498 reported by Dave Cheney
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-core
Fix Released
Medium
Dave Cheney

Bug Description

lucky(~/src/github.com/juju/juju/api/unitassigner) % go test -race .
==================
WARNING: DATA RACE
Write by goroutine 16:
  github.com/juju/juju/api/unitassigner.(*fakeWatchCaller).APICall()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/unitassigner_test.go:108 +0x51
  github.com/juju/juju/api/watcher.makeWatcherAPICaller.func1()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:49 +0x17b
  github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop.func2()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:95 +0x15c

Previous read by goroutine 12:
  runtime.convT2E()
      /home/dfc/go/src/runtime/iface.go:128 +0x0
  github.com/juju/juju/api/unitassigner.testsuite.TestWatchUnitAssignment()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/unitassigner_test.go:66 +0x262
  github.com/juju/juju/api/unitassigner.(*testsuite).TestWatchUnitAssignment()
      <autogenerated>:20 +0xbb
  runtime.call32()
      /home/dfc/go/src/runtime/asm_amd64.s:471 +0x3d
  reflect.Value.Call()
      /home/dfc/go/src/reflect/value.go:303 +0xcd
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:772 +0x5d1
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:666 +0x80

Goroutine 16 (running) created at:
  github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:118 +0x118

Goroutine 12 (finished) created at:
  gopkg.in/check%2ev1.(*suiteRunner).forkCall()
      /home/dfc/src/gopkg.in/check.v1/check.go:667 +0x48b
  gopkg.in/check%2ev1.(*suiteRunner).forkTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:804 +0x126
  gopkg.in/check%2ev1.(*suiteRunner).runTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:809 +0x38
  gopkg.in/check%2ev1.(*suiteRunner).run()
      /home/dfc/src/gopkg.in/check.v1/check.go:615 +0x481
  gopkg.in/check%2ev1.Run()
      /home/dfc/src/gopkg.in/check.v1/run.go:92 +0x50
  gopkg.in/check%2ev1.RunAll()
      /home/dfc/src/gopkg.in/check.v1/run.go:84 +0x138
  gopkg.in/check%2ev1.TestingT()
      /home/dfc/src/gopkg.in/check.v1/run.go:72 +0x4af
  github.com/juju/juju/api/unitassigner.TestPackage()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/package_test.go:13 +0x2e
  testing.tRunner()
      /home/dfc/go/src/testing/testing.go:456 +0xdc
==================
==================
WARNING: DATA RACE
Write by goroutine 16:
  github.com/juju/juju/api/unitassigner.(*fakeWatchCaller).APICall()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/unitassigner_test.go:109 +0x8e
  github.com/juju/juju/api/watcher.makeWatcherAPICaller.func1()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:49 +0x17b
  github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop.func2()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:95 +0x15c

Previous read by goroutine 12:
  github.com/juju/juju/api/unitassigner.testsuite.TestWatchUnitAssignment()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/unitassigner_test.go:67 +0x2dd
  github.com/juju/juju/api/unitassigner.(*testsuite).TestWatchUnitAssignment()
      <autogenerated>:20 +0xbb
  runtime.call32()
      /home/dfc/go/src/runtime/asm_amd64.s:471 +0x3d
  reflect.Value.Call()
      /home/dfc/go/src/reflect/value.go:303 +0xcd
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:772 +0x5d1
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:666 +0x80

Goroutine 16 (running) created at:
  github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop()
      /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:118 +0x118

Goroutine 12 (finished) created at:
  gopkg.in/check%2ev1.(*suiteRunner).forkCall()
      /home/dfc/src/gopkg.in/check.v1/check.go:667 +0x48b
  gopkg.in/check%2ev1.(*suiteRunner).forkTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:804 +0x126
  gopkg.in/check%2ev1.(*suiteRunner).runTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:809 +0x38
  gopkg.in/check%2ev1.(*suiteRunner).run()
      /home/dfc/src/gopkg.in/check.v1/check.go:615 +0x481
  gopkg.in/check%2ev1.Run()
      /home/dfc/src/gopkg.in/check.v1/run.go:92 +0x50
  gopkg.in/check%2ev1.RunAll()
      /home/dfc/src/gopkg.in/check.v1/run.go:84 +0x138
  gopkg.in/check%2ev1.TestingT()
      /home/dfc/src/gopkg.in/check.v1/run.go:72 +0x4af
  github.com/juju/juju/api/unitassigner.TestPackage()
      /home/dfc/src/github.com/juju/juju/api/unitassigner/package_test.go:13 +0x2e
  testing.tRunner()
      /home/dfc/go/src/testing/testing.go:456 +0xdc
==================
OK: 3 passed
PASS
Found 2 data race(s)
FAIL github.com/juju/juju/api/unitassigner 1.092s

Revision history for this message
Dave Cheney (dave-cheney) wrote :

Bug was introduced in https://github.com/juju/juju/commit/e8934a0b, along with

# github.com/juju/juju/api/unitassigner
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4890ef]

goroutine 26 [running]:
github.com/juju/juju/api/unitassigner.(*fakeWatchCaller).APICall(0xc8201fa900, 0xab5a30, 0xe, 0x1, 0x0, 0x0, 0xaa5e88, 0x4, 0x0, 0x0, ...)
        /home/dfc/src/github.com/juju/juju/api/unitassigner/unitassigner_test.go:113 +0x1af
github.com/juju/juju/api/watcher.makeWatcherAPICaller.func1(0xaa5e88, 0x4, 0x8b7f80, 0xc8201fd4f0, 0x0, 0x0)
        /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:49 +0x16b
github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop.func2(0xc8201fd4e0, 0xc82022da40)
        /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:95 +0xec
created by github.com/juju/juju/api/watcher.(*commonWatcher).commonLoop
        /home/dfc/src/github.com/juju/juju/api/watcher/watcher.go:118 +0xe1
FATAL: command "test" failed: exit status 2

Changed in juju-core:
status: New → Triaged
importance: Undecided → Medium
Changed in juju-core:
assignee: nobody → Dave Cheney (dave-cheney)
status: Triaged → In Progress
Changed in juju-core:
status: In Progress → Fix Committed
milestone: none → 1.26-beta1
Changed in juju-core:
milestone: 1.26-beta1 → 2.0-alpha1
Changed in juju-core:
milestone: 2.0-alpha1 → 1.26-alpha3
Curtis Hovey (sinzui)
tags: added: race-condition tech-debt
Curtis Hovey (sinzui)
Changed in juju-core:
status: Fix Committed → Fix Released
tags: added: 2.0-count
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.