I'm still getting -race failures, this is on vivid
$ go version
go version go1.3.3 linux/amd64
$ go test -race
==================
WARNING: DATA RACE
Write by goroutine 10:
launchpad.net/ubuntu-push/messaging.(*MessagingSuite).TestCleanupInAddNotification()
/home/pedronis/canonical/go-ws/src/launchpad.net/ubuntu-push/messaging/messaging_test.go:349 +0x4a3
runtime.call16()
/usr/lib/go/src/pkg/runtime/asm_amd64.s:360 +0x31
reflect.Value.Call()
/usr/lib/go/src/pkg/reflect/value.go:411 +0xed
launchpad.net/gocheck.func·006()
/home/pedronis/canonical/go-ws/src/launchpad.net/gocheck/gocheck.go:733 +0x51b
launchpad.net/gocheck.func·004()
/home/pedronis/canonical/go-ws/src/launchpad.net/gocheck/gocheck.go:628 +0xf4
I'm still getting -race failures, this is on vivid
$ go version net/ubuntu- push/messaging. (*MessagingSuit e).TestCleanupI nAddNotificatio n() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 349 +0x4a3 usr/lib/ go/src/ pkg/runtime/ asm_amd64. s:360 +0x31 Value.Call( ) usr/lib/ go/src/ pkg/reflect/ value.go: 411 +0xed net/gocheck. func·006( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:733 +0x51b net/gocheck. func·004( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:628 +0xf4
go version go1.3.3 linux/amd64
$ go test -race
==================
WARNING: DATA RACE
Write by goroutine 10:
launchpad.
/
runtime.call16()
/
reflect.
/
launchpad.
/
launchpad.
/
Previous read by goroutine 13: net/ubuntu- push/messaging. (*MessagingMenu ).doCleanUpNoti fications( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:89 +0x125 net/ubuntu- push/messaging. (*MessagingMenu ).cleanUpNotifi cations( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:83 +0x77
launchpad.
/
launchpad.
/
Goroutine 10 (running) created at: net/gocheck. (*suiteRunner) .forkCall( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:629 +0x42e net/gocheck. (*suiteRunner) .forkTest( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:765 +0xce net/gocheck. (*suiteRunner) .runTest( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:770 +0x3e net/gocheck. (*suiteRunner) .run() home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:584 +0x3fd net/gocheck. Run() home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 76 +0x56 net/gocheck. RunAll( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 68 +0x12d net/gocheck. TestingT( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 56 +0x53c net/ubuntu- push/messaging. Test() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 36 +0x34 usr/lib/ go/src/ pkg/testing/ testing. go:422 +0x10f
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
testing.tRunner()
/
Goroutine 13 (finished) created at: net/ubuntu- push/messaging. (*MessagingMenu ).addNotificati on() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:66 +0x404 net/ubuntu- push/messaging. func·010( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 318 +0x3ed net/ubuntu- push/messaging. (*MessagingSuit e).TestCleanupI nAddNotificatio n() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 338 +0x36b usr/lib/ go/src/ pkg/runtime/ asm_amd64. s:360 +0x31 Value.Call( ) usr/lib/ go/src/ pkg/reflect/ value.go: 411 +0xed net/gocheck. func·006( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:733 +0x51b net/gocheck. func·004( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:628 +0xf4 usr/lib/ go/src/ pkg/runtime/ hashmap. goc:1069 +0x0 Value.Len( ) usr/lib/ go/src/ pkg/reflect/ value.go: 1169 +0x16c net/gocheck. (*hasLenChecker ).Check( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ checkers. go:238 +0x197 net/gocheck. (*C).internalCh eck() home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ helpers. go:204 +0xe1d net/gocheck. (*C).Check( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ helpers. go:152 +0x9f net/ubuntu- push/messaging. (*MessagingSuit e).TestCleanupI nAddNotificatio n() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 375 +0x7f9 usr/lib/ go/src/ pkg/runtime/ asm_amd64. s:360 +0x31 Value.Call( ) usr/lib/ go/src/ pkg/reflect/ value.go: 411 +0xed net/gocheck. func·006( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:733 +0x51b net/gocheck. func·004( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:628 +0xf4
launchpad.
/
launchpad.
/
launchpad.
/
runtime.call16()
/
reflect.
/
launchpad.
/
launchpad.
/
==================
==================
WARNING: DATA RACE
Read by goroutine 10:
reflect.maplen()
/
reflect.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
runtime.call16()
/
reflect.
/
launchpad.
/
launchpad.
/
Previous write by goroutine 14: mapdelete( ) usr/lib/ go/src/ pkg/runtime/ hashmap. goc:948 +0x0 net/ubuntu- push/messaging. (*MessagingMenu ).doCleanUpNoti fications( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:90 +0x1b5 net/ubuntu- push/messaging. (*MessagingMenu ).cleanUpNotifi cations( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:83 +0x77
runtime.
/
launchpad.
/
launchpad.
/
Goroutine 10 (running) created at: net/gocheck. (*suiteRunner) .forkCall( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:629 +0x42e net/gocheck. (*suiteRunner) .forkTest( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:765 +0xce net/gocheck. (*suiteRunner) .runTest( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:770 +0x3e net/gocheck. (*suiteRunner) .run() home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:584 +0x3fd net/gocheck. Run() home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 76 +0x56 net/gocheck. RunAll( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 68 +0x12d net/gocheck. TestingT( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ run.go: 56 +0x53c net/ubuntu- push/messaging. Test() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 36 +0x34 usr/lib/ go/src/ pkg/testing/ testing. go:422 +0x10f
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
launchpad.
/
testing.tRunner()
/
Goroutine 14 (finished) created at: net/ubuntu- push/messaging. (*MessagingMenu ).addNotificati on() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging. go:66 +0x404 net/ubuntu- push/messaging. func·010( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 318 +0x3ed net/ubuntu- push/messaging. (*MessagingSuit e).TestCleanupI nAddNotificatio n() home/pedronis/ canonical/ go-ws/src/ launchpad. net/ubuntu- push/messaging/ messaging_ test.go: 369 +0x6d3 usr/lib/ go/src/ pkg/runtime/ asm_amd64. s:360 +0x31 Value.Call( ) usr/lib/ go/src/ pkg/reflect/ value.go: 411 +0xed net/gocheck. func·006( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:733 +0x51b net/gocheck. func·004( ) home/pedronis/ canonical/ go-ws/src/ launchpad. net/gocheck/ gocheck. go:628 +0xf4 net/ubuntu- push/messaging 5.702s
launchpad.
/
launchpad.
/
launchpad.
/
runtime.call16()
/
reflect.
/
launchpad.
/
launchpad.
/
==================
OK: 13 passed
PASS
Found 2 data race(s)
exit status 66
FAIL launchpad.