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 the (*collationInfo).HasCoercibility() #38282

Closed
hawkingrei opened this issue Sep 30, 2022 · 0 comments · Fixed by #38281
Closed

DATA RACE in the (*collationInfo).HasCoercibility() #38282

hawkingrei opened this issue Sep 30, 2022 · 0 comments · Fixed by #38281

Comments

@hawkingrei
Copy link
Member

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

==================

WARNING: DATA RACE

Read at 0x00c0028c6108 by goroutine 524179:

  github.com/pingcap/tidb/expression.(*collationInfo).HasCoercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/collation.go:47 +0x3e

  github.com/pingcap/tidb/expression.(*Column).Coercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/column.go:700 +0x27

  github.com/pingcap/tidb/expression.(*builtinCoercibilitySig).evalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/builtin_info.go:674 +0x65

  github.com/pingcap/tidb/expression.(*ScalarFunction).EvalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/scalar_function.go:399 +0x101

  github.com/pingcap/tidb/expression.executeToInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:258 +0x98

  github.com/pingcap/tidb/expression.evalOneColumn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:207 +0x1a79

  github.com/pingcap/tidb/expression.(*defaultEvaluator).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:59 +0x595

  github.com/pingcap/tidb/expression.(*EvaluatorSuite).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:125 +0x90

  github.com/pingcap/tidb/executor.(*projectionWorker).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:445 +0x511

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0x58


Previous write at 0x00c0028c6108 by goroutine 524178:

  github.com/pingcap/tidb/expression.(*collationInfo).SetCoercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/collation.go:57 +0x7c

  github.com/pingcap/tidb/expression.(*Column).Coercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/column.go:701 +0x4a

  github.com/pingcap/tidb/expression.(*builtinCoercibilitySig).evalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/builtin_info.go:674 +0x65

  github.com/pingcap/tidb/expression.(*ScalarFunction).EvalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/scalar_function.go:399 +0x101

  github.com/pingcap/tidb/expression.executeToInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:258 +0x98

  github.com/pingcap/tidb/expression.evalOneColumn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:207 +0x1a79

  github.com/pingcap/tidb/expression.(*defaultEvaluator).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:59 +0x595

  github.com/pingcap/tidb/expression.(*EvaluatorSuite).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:125 +0x90

  github.com/pingcap/tidb/executor.(*projectionWorker).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:445 +0x511

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0x58


Goroutine 524179 (running) created at:

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0xcd7

  github.com/pingcap/tidb/executor.(*ProjectionExec).parallelExecute()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:208 +0xd2

  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:181 +0xcc

  github.com/pingcap/tidb/executor.Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/executor.go:324 +0x5c3

  github.com/pingcap/tidb/executor.(*ExecStmt).next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:987 +0x89

  github.com/pingcap/tidb/executor.(*recordSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:153 +0x164

  github.com/pingcap/tidb/session.(*execStmtResult).Next()

      <autogenerated>:1 +0x76

  github.com/pingcap/tidb/server.(*tidbResultSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/driver_tidb.go:407 +0x61

  github.com/pingcap/tidb/server.(*clientConn).writeChunks()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2261 +0x1ed

  github.com/pingcap/tidb/server.(*clientConn).writeResultset()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2204 +0x2d4

  github.com/pingcap/tidb/server.(*clientConn).handleStmt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2071 +0x470

  github.com/pingcap/tidb/server.(*clientConn).handleQuery()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1904 +0x94f

  github.com/pingcap/tidb/server.(*clientConn).dispatch()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1359 +0x14a6

  github.com/pingcap/tidb/server.(*clientConn).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1104 +0x304

  github.com/pingcap/tidb/server.(*Server).onConn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:563 +0x2086

  github.com/pingcap/tidb/server.(*Server).startNetworkListener.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:454 +0x47


Goroutine 524178 (running) created at:

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0xcd7

  github.com/pingcap/tidb/executor.(*ProjectionExec).parallelExecute()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:208 +0xd2

  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:181 +0xcc

  github.com/pingcap/tidb/executor.Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/executor.go:324 +0x5c3

  github.com/pingcap/tidb/executor.(*ExecStmt).next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:987 +0x89

  github.com/pingcap/tidb/executor.(*recordSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:153 +0x164

  github.com/pingcap/tidb/session.(*execStmtResult).Next()

      <autogenerated>:1 +0x76

  github.com/pingcap/tidb/server.(*tidbResultSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/driver_tidb.go:407 +0x61

  github.com/pingcap/tidb/server.(*clientConn).writeChunks()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2261 +0x1ed

  github.com/pingcap/tidb/server.(*clientConn).writeResultset()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2204 +0x2d4

  github.com/pingcap/tidb/server.(*clientConn).handleStmt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2071 +0x470

  github.com/pingcap/tidb/server.(*clientConn).handleQuery()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1904 +0x94f

  github.com/pingcap/tidb/server.(*clientConn).dispatch()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1359 +0x14a6

  github.com/pingcap/tidb/server.(*clientConn).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1104 +0x304

  github.com/pingcap/tidb/server.(*Server).onConn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:563 +0x2086

  github.com/pingcap/tidb/server.(*Server).startNetworkListener.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:454 +0x47

==================

==================

WARNING: DATA RACE

Read at 0x00c0028c6100 by goroutine 524179:

  github.com/pingcap/tidb/expression.(*collationInfo).Coercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/collation.go:51 +0x91

  github.com/pingcap/tidb/expression.(*Column).Coercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/column.go:703 +0xa0

  github.com/pingcap/tidb/expression.(*builtinCoercibilitySig).evalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/builtin_info.go:674 +0x65

  github.com/pingcap/tidb/expression.(*ScalarFunction).EvalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/scalar_function.go:399 +0x101

  github.com/pingcap/tidb/expression.executeToInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:258 +0x98

  github.com/pingcap/tidb/expression.evalOneColumn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:207 +0x1a79

  github.com/pingcap/tidb/expression.(*defaultEvaluator).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:59 +0x595

  github.com/pingcap/tidb/expression.(*EvaluatorSuite).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:125 +0x90

  github.com/pingcap/tidb/executor.(*projectionWorker).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:445 +0x511

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0x58


Previous write at 0x00c0028c6100 by goroutine 524178:

  github.com/pingcap/tidb/expression.(*collationInfo).SetCoercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/collation.go:56 +0x64

  github.com/pingcap/tidb/expression.(*Column).Coercibility()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/column.go:701 +0x4a

  github.com/pingcap/tidb/expression.(*builtinCoercibilitySig).evalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/builtin_info.go:674 +0x65

  github.com/pingcap/tidb/expression.(*ScalarFunction).EvalInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/scalar_function.go:399 +0x101

  github.com/pingcap/tidb/expression.executeToInt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:258 +0x98

  github.com/pingcap/tidb/expression.evalOneColumn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/chunk_executor.go:207 +0x1a79

  github.com/pingcap/tidb/expression.(*defaultEvaluator).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:59 +0x595

  github.com/pingcap/tidb/expression.(*EvaluatorSuite).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/expression/evaluator.go:125 +0x90

  github.com/pingcap/tidb/executor.(*projectionWorker).run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:445 +0x511

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0x58


Goroutine 524179 (running) created at:

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0xcd7

  github.com/pingcap/tidb/executor.(*ProjectionExec).parallelExecute()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:208 +0xd2

  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:181 +0xcc

  github.com/pingcap/tidb/executor.Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/executor.go:324 +0x5c3

  github.com/pingcap/tidb/executor.(*ExecStmt).next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:987 +0x89

  github.com/pingcap/tidb/executor.(*recordSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:153 +0x164

  github.com/pingcap/tidb/session.(*execStmtResult).Next()

      <autogenerated>:1 +0x76

  github.com/pingcap/tidb/server.(*tidbResultSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/driver_tidb.go:407 +0x61

  github.com/pingcap/tidb/server.(*clientConn).writeChunks()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2261 +0x1ed

  github.com/pingcap/tidb/server.(*clientConn).writeResultset()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2204 +0x2d4

  github.com/pingcap/tidb/server.(*clientConn).handleStmt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2071 +0x470

  github.com/pingcap/tidb/server.(*clientConn).handleQuery()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1904 +0x94f

  github.com/pingcap/tidb/server.(*clientConn).dispatch()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1359 +0x14a6

  github.com/pingcap/tidb/server.(*clientConn).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1104 +0x304

  github.com/pingcap/tidb/server.(*Server).onConn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:563 +0x2086

  github.com/pingcap/tidb/server.(*Server).startNetworkListener.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:454 +0x47


Goroutine 524178 (running) created at:

  github.com/pingcap/tidb/executor.(*ProjectionExec).prepare()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:277 +0xcd7

  github.com/pingcap/tidb/executor.(*ProjectionExec).parallelExecute()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:208 +0xd2

  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/projection.go:181 +0xcc

  github.com/pingcap/tidb/executor.Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/executor.go:324 +0x5c3

  github.com/pingcap/tidb/executor.(*ExecStmt).next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:987 +0x89

  github.com/pingcap/tidb/executor.(*recordSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/executor/adapter.go:153 +0x164

  github.com/pingcap/tidb/session.(*execStmtResult).Next()

      <autogenerated>:1 +0x76

  github.com/pingcap/tidb/server.(*tidbResultSet).Next()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/driver_tidb.go:407 +0x61

  github.com/pingcap/tidb/server.(*clientConn).writeChunks()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2261 +0x1ed

  github.com/pingcap/tidb/server.(*clientConn).writeResultset()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2204 +0x2d4

  github.com/pingcap/tidb/server.(*clientConn).handleStmt()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:2071 +0x470

  github.com/pingcap/tidb/server.(*clientConn).handleQuery()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1904 +0x94f

  github.com/pingcap/tidb/server.(*clientConn).dispatch()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1359 +0x14a6

  github.com/pingcap/tidb/server.(*clientConn).Run()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/conn.go:1104 +0x304

  github.com/pingcap/tidb/server.(*Server).onConn()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:563 +0x2086

  github.com/pingcap/tidb/server.(*Server).startNetworkListener.func2()

      /home/jenkins/agent/workspace/pingcap/tidb/ghpr_mysql_test/tidb/server/server.go:454 +0x47

==================

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

3. What did you see instead (Required)

4. What is your TiDB version? (Required)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant