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 buildFinalTableReader #39514

Closed
hawkingrei opened this issue Nov 30, 2022 · 0 comments · Fixed by #39513
Closed

DATA RACE in the buildFinalTableReader #39514

hawkingrei opened this issue Nov 30, 2022 · 0 comments · Fixed by #39513
Labels
severity/moderate sig/execution SIG execution 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!

1. Minimal reproduce step (Required)

==================
WARNING: DATA RACE
Write at 0x00c026b61a08 by goroutine 999245:
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).buildFinalTableReader()
      executor/index_merge_reader.go:634 +0x926
  github.com/pingcap/tidb/executor.(*indexMergeTableScanWorker).executeTask()
      executor/index_merge_reader.go:1149 +0x1cc
  github.com/pingcap/tidb/executor.(*indexMergeTableScanWorker).pickAndExecTask()
      executor/index_merge_reader.go:1122 +0x1e9
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker.func1.1()
      executor/index_merge_reader.go:610 +0x59
  github.com/pingcap/tidb/util.WithRecovery()
      util/misc.go:96 +0x6d
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker.func1()
      executor/index_merge_reader.go:609 +0x178
Previous write at 0x00c026b61a08 by goroutine 999243:
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).buildFinalTableReader()
      executor/index_merge_reader.go:634 +0x926
  github.com/pingcap/tidb/executor.(*indexMergeTableScanWorker).executeTask()
      executor/index_merge_reader.go:1149 +0x1cc
  github.com/pingcap/tidb/executor.(*indexMergeTableScanWorker).pickAndExecTask()
      executor/index_merge_reader.go:1122 +0x1e9
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker.func1.1()
      executor/index_merge_reader.go:610 +0x59
  github.com/pingcap/tidb/util.WithRecovery()
      util/misc.go:96 +0x6d
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker.func1()
      executor/index_merge_reader.go:609 +0x178
Goroutine 999245 (running) created at:
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker()
      executor/index_merge_reader.go:606 +0xf1
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startWorkers()
      executor/index_merge_reader.go:245 +0x353
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).Next()
      executor/index_merge_reader.go:652 +0x91
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*MaxOneRowExec).Next()
      executor/executor.go:1708 +0x198
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*NestedLoopApplyExec).fetchAllInners()
      executor/join.go:1408 +0x57d
  github.com/pingcap/tidb/executor.(*NestedLoopApplyExec).Next()
      executor/join.go:1473 +0x1164
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*ProjectionExec).unParallelExecute()
      executor/projection.go:192 +0x304
  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()
      executor/projection.go:179 +0x92
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*ExecStmt).next()
      executor/adapter.go:1142 +0x89
  github.com/pingcap/tidb/executor.(*recordSet).Next()
      executor/adapter.go:153 +0x164
  github.com/pingcap/tidb/session.(*execStmtResult).Next()
      <autogenerated>:1 +0x76
  github.com/pingcap/tidb/session.GetRows4Test()
      session/tidb.go:336 +0xea
  github.com/pingcap/tidb/session.ResultSetToStringSlice()
      session/tidb.go:354 +0xb9
  github.com/pingcap/tidb/testkit.(*TestKit).ResultSetToResultWithCtx()
      testkit/testkit.go:218 +0xbc
  github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
      testkit/testkit.go:153 +0x284
  github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
      testkit/testkit.go:144 +0x107
  github.com/pingcap/tidb/planner/core_test.TestHintForIntersectionIndexMerge()
      planner/core/indexmerge_intersection_test.go:174 +0xac4
  github.com/pingcap/tidb/domain.(*Domain).rebuildSysVarCache()
      domain/sysvar_cache.go:146 +0x844
  github.com/pingcap/tidb/domain.(*Domain).LoadSysVarCacheLoop()
      domain/domain.go:1359 +0xa8
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:2993 +0x693
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x59
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3242 +0x104
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2108 +0x2a5
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1671 +0x471
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1301 +0x130
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:2986 +0x644
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:83 +0x9c
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:69 +0xe9
  github.com/pingcap/tidb/planner/core_test.TestHintForIntersectionIndexMerge()
      planner/core/indexmerge_intersection_test.go:68 +0x58
  testing.tRunner()
      GOROOT/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1493 +0x47
Goroutine 999243 (running) created at:
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startIndexMergeTableScanWorker()
      executor/index_merge_reader.go:606 +0xf1
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).startWorkers()
      executor/index_merge_reader.go:245 +0x353
  github.com/pingcap/tidb/executor.(*IndexMergeReaderExecutor).Next()
      executor/index_merge_reader.go:652 +0x91
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*MaxOneRowExec).Next()
      executor/executor.go:1708 +0x198
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*NestedLoopApplyExec).fetchAllInners()
      executor/join.go:1408 +0x57d
  github.com/pingcap/tidb/executor.(*NestedLoopApplyExec).Next()
      executor/join.go:1473 +0x1164
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*ProjectionExec).unParallelExecute()
      executor/projection.go:192 +0x304
  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()
      executor/projection.go:179 +0x92
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x5c3
  github.com/pingcap/tidb/executor.(*ExecStmt).next()
      executor/adapter.go:1142 +0x89
  github.com/pingcap/tidb/executor.(*recordSet).Next()
      executor/adapter.go:153 +0x164
  github.com/pingcap/tidb/session.(*execStmtResult).Next()
      <autogenerated>:1 +0x76
  github.com/pingcap/tidb/session.GetRows4Test()
      session/tidb.go:336 +0xea
  github.com/pingcap/tidb/session.ResultSetToStringSlice()
      session/tidb.go:354 +0xb9
  github.com/pingcap/tidb/testkit.(*TestKit).ResultSetToResultWithCtx()
      testkit/testkit.go:218 +0xbc
  github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
      testkit/testkit.go:153 +0x284
  github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
      testkit/testkit.go:144 +0x107
  github.com/pingcap/tidb/planner/core_test.TestHintForIntersectionIndexMerge()
      planner/core/indexmerge_intersection_test.go:174 +0xac4
  github.com/pingcap/tidb/domain.(*Domain).rebuildSysVarCache()
      domain/sysvar_cache.go:146 +0x844
  github.com/pingcap/tidb/domain.(*Domain).LoadSysVarCacheLoop()
      domain/domain.go:1359 +0xa8
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:2993 +0x693
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x59
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3242 +0x104
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2108 +0x2a5
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1671 +0x471
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1301 +0x130
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:2986 +0x644
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:83 +0x9c
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:69 +0xe9
  github.com/pingcap/tidb/planner/core_test.TestHintForIntersectionIndexMerge()
      planner/core/indexmerge_intersection_test.go:68 +0x58
  testing.tRunner()
      GOROOT/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1493 +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
Labels
severity/moderate sig/execution SIG execution type/bug The issue is confirmed as a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant