go-ycsb icon indicating copy to clipboard operation
go-ycsb copied to clipboard

data race

Open nullne opened this issue 5 years ago • 1 comments

reproduce:

  1. go build -race cmd/go-ycsb/*
  2. echo 'threadcount=50' >> workloads/workloadb
  3. ./client load basic -P workloads/workloadb
  4. ./client run basic -P workloads/workloadb

this is the ouput:

 ./client  run   basic -P workloads/workloadb
***************** properties *****************
"updateproportion"="0.05"
"recordcount"="1000"
"workload"="core"
"insertproportion"="0"
"requestdistribution"="uniform"
"dotransactions"="true"
"operationcount"="1000"
"readallfields"="true"
"readproportion"="0.95"
"threadcount"="50"
"scanproportion"="0"
**********************************************
==================
WARNING: DATA RACE
Write at 0x00c00026ff60 by goroutine 64:
  github.com/pingcap/go-ycsb/pkg/generator.(*Discrete).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x1c3
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:358 +0xc1
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Previous write at 0x00c00026ff60 by goroutine 63:
  github.com/pingcap/go-ycsb/pkg/generator.(*Discrete).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x1c3
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:358 +0xc1
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Goroutine 64 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f

Goroutine 63 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f
==================
==================
WARNING: DATA RACE
Write at 0x00c0001fc180 by goroutine 64:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).nextKeyNum()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:408 +0x157
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:513 +0x68
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Previous write at 0x00c0001fc180 by goroutine 63:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).nextKeyNum()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:408 +0x157
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:513 +0x68
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Goroutine 64 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f

Goroutine 63 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f
==================
==================
WARNING: DATA RACE
Write at 0x00c0001fc180 by goroutine 65:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).nextKeyNum()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:408 +0x157
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:513 +0x68
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Previous write at 0x00c0001fc180 by goroutine 63:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).nextKeyNum()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:408 +0x157
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionRead()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:416 +0x7b
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:361 +0x230
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Goroutine 65 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f

Goroutine 63 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f
==================
==================
WARNING: DATA RACE
Write at 0x00c0001fc1a0 by goroutine 64:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).buildSingleValue()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:171 +0xae
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:520 +0x24d
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Previous write at 0x00c0001fc1a0 by goroutine 63:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).buildSingleValue()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:171 +0xae
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:520 +0x24d
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Goroutine 64 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f

Goroutine 63 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f
==================
==================
WARNING: DATA RACE
Write at 0x00c0001fc1a0 by goroutine 65:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).buildSingleValue()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:171 +0xae
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:520 +0x24d
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Previous write at 0x00c0001fc1a0 by goroutine 63:
  github.com/pingcap/go-ycsb/pkg/generator.(*Uniform).Next()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/generator/number.go:40 +0x97
  github.com/pingcap/go-ycsb/pkg/workload.(*core).buildSingleValue()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:171 +0xae
  github.com/pingcap/go-ycsb/pkg/workload.(*core).doTransactionUpdate()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:520 +0x24d
  github.com/pingcap/go-ycsb/pkg/workload.(*core).DoTransaction()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/workload/core.go:363 +0x1ad
  github.com/pingcap/go-ycsb/pkg/client.(*worker).run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:126 +0x4d1
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run.func2()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:212 +0x253

Goroutine 65 (running) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f

Goroutine 63 (finished) created at:
  github.com/pingcap/go-ycsb/pkg/client.(*Client).Run()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/pkg/client/client.go:206 +0x1fb
  main.runClientCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:55 +0x511
  main.runTransCommandFunc()
      /root/workspace/go/src/github.com/pingcap/go-ycsb/cmd/go-ycsb/client.go:66 +0x5b
  github.com/spf13/cobra.(*Command).execute()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x8e0
  github.com/spf13/cobra.(*Command).ExecuteC()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x416
  main.main()
      /root/workspace/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x37f
==================
Run finished, takes 24.978378ms
READ   - Takes(s): 0.0, Count: 952, OPS: 35603.8, Avg(us): 0, Min(us): 0, Max(us): 40, 99th(us): 1000, 99.9th(us): 1000, 99.99th(us): 1000
UPDATE - Takes(s): 0.0, Count: 48, OPS: 1633.8, Avg(us): 1, Min(us): 0, Max(us): 3, 99th(us): 1000, 99.9th(us): 1000, 99.99th(us): 1000
Found 5 data race(s)

nullne avatar Mar 12 '20 14:03 nullne

got. @nullne could you please help fix it? thank you very much

zhouqiang-cl avatar Mar 12 '20 15:03 zhouqiang-cl