youzan/nsq

run test.sh with DATA RACE

awinlei opened this issue · 1 comments

运行test.sh的时候,遇到data race
queueStart: 0

WARNING: DATA RACE
Read at 0x00c000496408 by goroutine 52:
sync/atomic.LoadInt64()
/usr/local/go/src/runtime/race_amd64.s:211 +0xb
github.com/youzan/nsq/nsqd.(*Topic).flushData()
/root/nsq/src/github.com/youzan/nsq/nsqd/topic.go:1294 +0x8f
github.com/youzan/nsq/nsqd.(*Topic).ForceFlush()
/root/nsq/src/github.com/youzan/nsq/nsqd/topic.go:1262 +0xae
github.com/youzan/nsq/nsqd.(*NSQD).flushAll()
/root/nsq/src/github.com/youzan/nsq/nsqd/nsqd.go:715 +0x141
github.com/youzan/nsq/nsqd.(*NSQD).queueScanLoop()
/root/nsq/src/github.com/youzan/nsq/nsqd/nsqd.go:875 +0x71c
github.com/youzan/nsq/nsqd.(*NSQD).Start.func1()
/root/nsq/src/github.com/youzan/nsq/nsqd/nsqd.go:272 +0x63
github.com/youzan/nsq/internal/util.(*WaitGroupWrapper).Wrap.func1()
/root/nsq/src/github.com/youzan/nsq/internal/util/wait_group_wrapper.go:15 +0x5c

Previous write at 0x00c000496408 by goroutine 49:
[failed to restore the stack]

Goroutine 52 (running) created at:
github.com/youzan/nsq/internal/util.(*WaitGroupWrapper).Wrap()
/root/nsq/src/github.com/youzan/nsq/internal/util/wait_group_wrapper.go:13 +0x6f
github.com/youzan/nsq/nsqd.(*NSQD).Start()
/root/nsq/src/github.com/youzan/nsq/nsqd/nsqd.go:272 +0xc1
github.com/youzan/nsq/nsqd.mustStartNSQD()
/root/nsq/src/github.com/youzan/nsq/nsqd/nsqd_test.go:93 +0x15f
github.com/youzan/nsq/nsqd.TestTopicResetWithQueueStart()
/root/nsq/src/github.com/youzan/nsq/nsqd/topic_test.go:549 +0x196
testing.tRunner()
/usr/local/go/src/testing/testing.go:827 +0x162

Goroutine 49 (running) created at:
testing.(*T).Run()
/usr/local/go/src/testing/testing.go:878 +0x659
testing.runTests.func1()
/usr/local/go/src/testing/testing.go:1119 +0xa8
testing.tRunner()
/usr/local/go/src/testing/testing.go:827 +0x162
testing.runTests()
/usr/local/go/src/testing/testing.go:1117 +0x4ee
testing.(*M).Run()
/usr/local/go/src/testing/testing.go:1034 +0x2ee
main.main()
_testmain.go:388 +0x332

--- FAIL: TestTopicResetWithQueueStart (3.05s)
testing.go:771: race detected during execution of test
FAIL
coverage: 53.8% of statements
FAIL github.com/youzan/nsq/nsqd 233.924s

The test case will be fixed to avoid change the conf directly, thanks to issue this.