Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DATA RACE in collationInfo #30488

Closed
hawkingrei opened this issue Dec 7, 2021 · 1 comment · Fixed by #30490
Closed

DATA RACE in collationInfo #30488

hawkingrei opened this issue Dec 7, 2021 · 1 comment · Fixed by #30490
Labels
severity/major sig/sql-infra SIG: SQL Infra type/bug The issue is confirmed as a bug.

Comments

@hawkingrei
Copy link
Member

Bug Report

Please answer these questions before submitting your issue. Thanks!

 WARNING: DATA RACE
Read at 0x000009b92608 by goroutine 260:
  github.com/pingcap/tidb/expression.(*collationInfo).HasCoercibility()
      /go/tidb/expression/collation.go:46 +0x3e
  github.com/pingcap/tidb/expression.(*Constant).Coercibility()
      /go/tidb/expression/constant.go:438 +0x27
  github.com/pingcap/tidb/expression.inferCollation()
      /go/tidb/expression/collation.go:360 +0xa8
  github.com/pingcap/tidb/expression.CheckAndDeriveCollationFromExprs()
      /go/tidb/expression/collation.go:276 +0x8f
  github.com/pingcap/tidb/expression.deriveCollation()
      /go/tidb/expression/collation.go:186 +0x19a8
  github.com/pingcap/tidb/expression.newBaseBuiltinFuncWithTp()
      /go/tidb/expression/builtin.go:128 +0x130
  github.com/pingcap/tidb/expression.(*lowerFunctionClass).getFunction()
      /go/tidb/expression/builtin_string.go:697 +0x133
  github.com/pingcap/tidb/expression.TestLower()
      /go/tidb/expression/builtin_string_test.go:632 +0x8f6
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/go/src/testing/testing.go:1306 +0x47
Previous write at 0x000009b92608 by goroutine 261:
  github.com/pingcap/tidb/expression.(*collationInfo).SetCoercibility()
      /go/tidb/expression/collation.go:56 +0x188
  github.com/pingcap/tidb/expression.(*Constant).Coercibility()
      /go/tidb/expression/constant.go:439 +0x67
  github.com/pingcap/tidb/expression.inferCollation()
      /go/tidb/expression/collation.go:360 +0xa8
  github.com/pingcap/tidb/expression.CheckAndDeriveCollationFromExprs()
      /go/tidb/expression/collation.go:276 +0x8f
  github.com/pingcap/tidb/expression.deriveCollation()
      /go/tidb/expression/collation.go:186 +0x19a8
  github.com/pingcap/tidb/expression.newBaseBuiltinFuncWithTp()
      /go/tidb/expression/builtin.go:128 +0x130
  github.com/pingcap/tidb/expression.(*upperFunctionClass).getFunction()
      /go/tidb/expression/builtin_string.go:896 +0x133
  github.com/pingcap/tidb/expression.TestUpper()
      /go/tidb/expression/builtin_string_test.go:691 +0x916
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/go/src/testing/testing.go:1306 +0x47
Goroutine 260 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1504 +0x9d1
  github.com/pingcap/tidb/testkit/testmain.(*testingM).Run()
      /go/tidb/testkit/testmain/wrapper.go:28 +0x42
  go.uber.org/goleak.VerifyTestMain()
      /home/prow/go/pkg/mod/go.uber.org/goleak@v1.1.12/testmain.go:53 +0x59
  github.com/pingcap/tidb/expression.TestMain()
      /go/tidb/expression/main_test.go:63 +0x425
  main.main()
      _testmain.go:897 +0x264
Goroutine 261 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1504 +0x9d1
  github.com/pingcap/tidb/testkit/testmain.(*testingM).Run()
      /go/tidb/testkit/testmain/wrapper.go:28 +0x42
  go.uber.org/goleak.VerifyTestMain()
      /home/prow/go/pkg/mod/go.uber.org/goleak@v1.1.12/testmain.go:53 +0x59
  github.com/pingcap/tidb/expression.TestMain()
      /go/tidb/expression/main_test.go:63 +0x425
  main.main()
      _testmain.go:897 +0x264
==================
==================
WARNING: DATA RACE
Read at 0x000009b92600 by goroutine 260:
  github.com/pingcap/tidb/expression.(*collationInfo).Coercibility()
      /go/tidb/expression/collation.go:50 +0x1a6
  github.com/pingcap/tidb/expression.(*Constant).Coercibility()
      /go/tidb/expression/constant.go:441 +0x1b8
  github.com/pingcap/tidb/expression.inferCollation()
      /go/tidb/expression/collation.go:360 +0xa8
  github.com/pingcap/tidb/expression.CheckAndDeriveCollationFromExprs()
      /go/tidb/expression/collation.go:276 +0x8f
  github.com/pingcap/tidb/expression.deriveCollation()
      /go/tidb/expression/collation.go:186 +0x19a8
  github.com/pingcap/tidb/expression.newBaseBuiltinFuncWithTp()
      /go/tidb/expression/builtin.go:128 +0x130
  github.com/pingcap/tidb/expression.(*lowerFunctionClass).getFunction()
      /go/tidb/expression/builtin_string.go:697 +0x133
  github.com/pingcap/tidb/expression.TestLower()
      /go/tidb/expression/builtin_string_test.go:632 +0x8f6
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/go/src/testing/testing.go:1306 +0x47
Previous write at 0x000009b92600 by goroutine 261:
  github.com/pingcap/tidb/expression.(*collationInfo).SetCoercibility()
      /go/tidb/expression/collation.go:55 +0x16d
  github.com/pingcap/tidb/expression.(*Constant).Coercibility()
      /go/tidb/expression/constant.go:439 +0x67
  github.com/pingcap/tidb/expression.inferCollation()
      /go/tidb/expression/collation.go:360 +0xa8
  github.com/pingcap/tidb/expression.CheckAndDeriveCollationFromExprs()
      /go/tidb/expression/collation.go:276 +0x8f
  github.com/pingcap/tidb/expression.deriveCollation()
      /go/tidb/expression/collation.go:186 +0x19a8
  github.com/pingcap/tidb/expression.newBaseBuiltinFuncWithTp()
      /go/tidb/expression/builtin.go:128 +0x130
  github.com/pingcap/tidb/expression.(*upperFunctionClass).getFunction()
      /go/tidb/expression/builtin_string.go:896 +0x133
  github.com/pingcap/tidb/expression.TestUpper()
      /go/tidb/expression/builtin_string_test.go:691 +0x916
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      /usr/local/go/src/testing/testing.go:1306 +0x47
Goroutine 260 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1504 +0x9d1
  github.com/pingcap/tidb/testkit/testmain.(*testingM).Run()
      /go/tidb/testkit/testmain/wrapper.go:28 +0x42
  go.uber.org/goleak.VerifyTestMain()
      /home/prow/go/pkg/mod/go.uber.org/goleak@v1.1.12/testmain.go:53 +0x59
  github.com/pingcap/tidb/expression.TestMain()
      /go/tidb/expression/main_test.go:63 +0x425
  main.main()
      _testmain.go:897 +0x264
Goroutine 261 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:1306 +0x726
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1598 +0x99
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1259 +0x22f
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1596 +0x7ca
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1504 +0x9d1
  github.com/pingcap/tidb/testkit/testmain.(*testingM).Run()
      /go/tidb/testkit/testmain/wrapper.go:28 +0x42
  go.uber.org/goleak.VerifyTestMain()
      /home/prow/go/pkg/mod/go.uber.org/goleak@v1.1.12/testmain.go:53 +0x59
  github.com/pingcap/tidb/expression.TestMain()
      /go/tidb/expression/main_test.go:63 +0x425
  main.main()
      _testmain.go:897 +0x264 

1. Minimal reproduce step (Required)

2. What did you expect to see? (Required)

3. What did you see instead (Required)

4. What is your TiDB version? (Required)

@hawkingrei hawkingrei added the type/bug The issue is confirmed as a bug. label Dec 7, 2021
@github-actions
Copy link

github-actions bot commented Dec 8, 2021

Please check whether the issue should be labeled with 'affects-x.y' or 'fixes-x.y.z', and then remove 'needs-more-info' label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
severity/major sig/sql-infra SIG: SQL Infra type/bug The issue is confirmed as a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants