worker/logger: data race in tests

Bug #1459085 reported by Dave Cheney on 2015-05-27
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
juju-core
High
Dave Cheney

Bug Description

==================
WARNING: DATA RACE
Read by goroutine 23:
  github.com/juju/loggo.LoggerInfo()
      /home/dfc/src/github.com/juju/loggo/logger.go:130 +0x41d
  github.com/juju/juju/worker/logger_test.(*LoggerSuite).waitLoggingInfo()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger_test.go:54 +0x14b
  github.com/juju/juju/worker/logger_test.(*LoggerSuite).TestInitialState()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger_test.go:103 +0x64d
  runtime.call32()
      /home/dfc/go/src/runtime/asm_amd64.s:421 +0x44
  reflect.Value.Call()
      /home/dfc/go/src/reflect/value.go:300 +0xd0
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:763 +0x600
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:657 +0x83

Previous write by goroutine 81:
  sync/atomic.StoreInt32()
      /home/dfc/go/src/runtime/race_amd64.s:215 +0xb
  github.com/juju/loggo.(*Level).set()
      /home/dfc/src/github.com/juju/loggo/logger.go:85 +0x3d
  github.com/juju/loggo.Logger.SetLogLevel()
      /home/dfc/src/github.com/juju/loggo/logger.go:301 +0x97
  github.com/juju/loggo.ConfigureLoggers()
      /home/dfc/src/github.com/juju/loggo/logger.go:201 +0x172
  github.com/juju/juju/worker/logger.(*Logger).setLogging()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger.go:47 +0x4ea
  github.com/juju/juju/worker/logger.(*Logger).SetUp()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger.go:63 +0xab
  github.com/juju/juju/worker.(*notifyWorker).loop()
      /home/dfc/src/github.com/juju/juju/worker/notifyworker.go:80 +0x8b
  github.com/juju/juju/worker.NewNotifyWorker.func1()
      /home/dfc/src/github.com/juju/juju/worker/notifyworker.go:52 +0x68

Goroutine 23 (running) created at:
  gopkg.in/check%2ev1.(*suiteRunner).forkCall()
      /home/dfc/src/gopkg.in/check.v1/check.go:658 +0x4c2
  gopkg.in/check%2ev1.(*suiteRunner).forkTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:795 +0x13a
  gopkg.in/check%2ev1.(*suiteRunner).runTest()
      /home/dfc/src/gopkg.in/check.v1/check.go:800 +0x3f
  gopkg.in/check%2ev1.(*suiteRunner).run()
      /home/dfc/src/gopkg.in/check.v1/check.go:606 +0x4a2
  gopkg.in/check%2ev1.Run()
      /home/dfc/src/gopkg.in/check.v1/run.go:92 +0x57
  gopkg.in/check%2ev1.RunAll()
      /home/dfc/src/gopkg.in/check.v1/run.go:84 +0x136
  gopkg.in/check%2ev1.TestingT()
      /home/dfc/src/gopkg.in/check.v1/run.go:72 +0x4b0
  github.com/juju/testing.MgoTestPackage()
      /home/dfc/src/github.com/juju/testing/mgo.go:353 +0x183
  github.com/juju/juju/testing.MgoTestPackage()
      /home/dfc/src/github.com/juju/juju/testing/mgo.go:15 +0x51
  github.com/juju/juju/worker/logger_test.TestAll()
      /home/dfc/src/github.com/juju/juju/worker/logger/package_test.go:13 +0x35
  testing.tRunner()
      /home/dfc/go/src/testing/testing.go:454 +0xfb

Goroutine 81 (running) created at:
  github.com/juju/juju/worker.NewNotifyWorker()
      /home/dfc/src/github.com/juju/juju/worker/notifyworker.go:53 +0xea
  github.com/juju/juju/worker/logger.NewLogger()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger.go:36 +0x2a0
  github.com/juju/juju/worker/logger_test.(*LoggerSuite).makeLogger()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger_test.go:80 +0x1c1
  github.com/juju/juju/worker/logger_test.(*LoggerSuite).TestInitialState()
      /home/dfc/src/github.com/juju/juju/worker/logger/logger_test.go:100 +0x5d4
  runtime.call32()
      /home/dfc/go/src/runtime/asm_amd64.s:421 +0x44
  reflect.Value.Call()
      /home/dfc/go/src/reflect/value.go:300 +0xd0
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:763 +0x600
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/dfc/src/gopkg.in/check.v1/check.go:657 +0x83
==================
OK: 2 passed
PASS
Found 1 data race(s)
exit status 66
FAIL github.com/juju/juju/worker/logger 3.000s

Dave Cheney (dave-cheney) wrote :

urk - this looks like a loggo race.

Changed in juju-core:
status: New → In Progress
assignee: nobody → Dave Cheney (dave-cheney)
Changed in juju-core:
status: In Progress → Fix Committed
Curtis Hovey (sinzui) on 2015-06-10
Changed in juju-core:
status: Fix Committed → Fix Released
importance: Undecided → High
milestone: none → 1.25.0
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers