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 at the ScanDetail #45983

Open
Tracked by #41316
hawkingrei opened this issue Aug 10, 2023 · 1 comment
Open
Tracked by #41316

DATA RACE at the ScanDetail #45983

hawkingrei opened this issue Aug 10, 2023 · 1 comment

Comments

@hawkingrei
Copy link
Member

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

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

3. What did you see instead (Required)

==================
WARNING: DATA RACE
Write at 0x00c005dd1b00 by goroutine 49946:
  sync/atomic.AddInt64()
      src/runtime/race_amd64.s:289 +0xb
  sync/atomic.AddInt64()
      <autogenerated>:1 +0x15
  github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).MergeScanDetail()
      sessionctx/stmtctx/stmtctx.go:1036 +0x168
  github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).MergeExecDetails()
      sessionctx/stmtctx/stmtctx.go:1008 +0x25d
  github.com/pingcap/tidb/distsql.(*selectResult).fetchResp()
      distsql/select_result.go:412 +0x83b
  github.com/pingcap/tidb/distsql.(*selectResult).Next()
      distsql/select_result.go:425 +0x131
  github.com/pingcap/tidb/executor.(*IndexReaderExecutor).Next()
      executor/distsql.go:249 +0xb9
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:253 +0x3d5
  github.com/pingcap/tidb/executor.(*UnionExec).resultPuller()
      executor/executor.go:1907 +0xac4
  github.com/pingcap/tidb/executor.(*UnionExec).initialize.func1()
      executor/executor.go:1860 +0x5d
Previous read at 0x00c005dd1b00 by goroutine 49892:
  github.com/pingcap/tidb/util/execdetails.ExecDetails.ToZapFields()
      util/execdetails/execdetails.go:316 +0xb75
  github.com/pingcap/tidb/util.GenLogFields()
      util/util.go:123 +0x2fe
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan.func1()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1162 +0xcc
Goroutine 49946 (running) created at:
  github.com/pingcap/tidb/executor.(*UnionExec).initialize()
      executor/executor.go:1860 +0x5b2
  github.com/pingcap/tidb/executor.(*UnionExec).Next()
      executor/executor.go:1933 +0x109
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:253 +0x3d5
  github.com/pingcap/tidb/executor.(*ExecStmt).next()
      executor/adapter.go:1223 +0x94
  github.com/pingcap/tidb/executor.(*recordSet).Next()
      executor/adapter.go:155 +0x171
  github.com/pingcap/tidb/session.(*execStmtResult).Next()
      <autogenerated>:1 +0x6c
  github.com/pingcap/tidb/session.GetRows4Test()
      session/tidb.go:350 +0x121
  github.com/pingcap/tidb/session.ResultSetToStringSlice()
      session/tidb.go:368 +0xbe
  github.com/pingcap/tidb/testkit.(*TestKit).ResultSetToResultWithCtx()
      testkit/testkit.go:239 +0xac
  github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
      testkit/testkit.go:174 +0x275
  github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
      testkit/testkit.go:149 +0xeb
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1166 +0x498
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3392 +0x7aa
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x64
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3763 +0x130
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2155 +0x15a
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1669 +0x35a
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1599 +0x11a
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3385 +0x74a
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3306 +0x4b
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:227 +0x76
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:200 +0xcd
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:68 +0x3c9
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1141 +0x49
  testing.tRunner()
      GOROOT/src/testing/testing.go:1595 +0x238
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1648 +0x44
Goroutine 49892 (running) created at:
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1158 +0x472
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3392 +0x7aa
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x64
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3763 +0x130
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2155 +0x15a
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1669 +0x35a
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1599 +0x11a
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3385 +0x74a
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3306 +0x4b
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:227 +0x76
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:200 +0xcd
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:68 +0x3c9
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1141 +0x49
  testing.tRunner()
      GOROOT/src/testing/testing.go:1595 +0x238
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1648 +0x44
==================
==================
WARNING: DATA RACE
Write at 0x00c005dd1b08 by goroutine 49946:
  sync/atomic.AddInt64()
      src/runtime/race_amd64.s:289 +0xb
  sync/atomic.AddInt64()
      <autogenerated>:1 +0x15
  github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).MergeScanDetail()
      sessionctx/stmtctx/stmtctx.go:1036 +0x168
  github.com/pingcap/tidb/sessionctx/stmtctx.(*StatementContext).MergeExecDetails()
      sessionctx/stmtctx/stmtctx.go:1008 +0x25d
  github.com/pingcap/tidb/distsql.(*selectResult).fetchResp()
      distsql/select_result.go:412 +0x83b
  github.com/pingcap/tidb/distsql.(*selectResult).Next()
      distsql/select_result.go:425 +0x131
  github.com/pingcap/tidb/executor.(*IndexReaderExecutor).Next()
      executor/distsql.go:249 +0xb9
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:253 +0x3d5
  github.com/pingcap/tidb/executor.(*UnionExec).resultPuller()
      executor/executor.go:1907 +0xac4
  github.com/pingcap/tidb/executor.(*UnionExec).initialize.func1()
      executor/executor.go:1860 +0x5d
Previous read at 0x00c005dd1b08 by goroutine 49892:
  github.com/pingcap/tidb/util/execdetails.ExecDetails.ToZapFields()
      util/execdetails/execdetails.go:319 +0xdc4
  github.com/pingcap/tidb/util.GenLogFields()
      util/util.go:123 +0x2fe
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan.func1()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1162 +0xcc
Goroutine 49946 (running) created at:
  github.com/pingcap/tidb/executor.(*UnionExec).initialize()
      executor/executor.go:1860 +0x5b2
  github.com/pingcap/tidb/executor.(*UnionExec).Next()
      executor/executor.go:1933 +0x109
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:253 +0x3d5
  github.com/pingcap/tidb/executor.(*ExecStmt).next()
      executor/adapter.go:1223 +0x94
  github.com/pingcap/tidb/executor.(*recordSet).Next()
      executor/adapter.go:155 +0x171
  github.com/pingcap/tidb/session.(*execStmtResult).Next()
      <autogenerated>:1 +0x6c
  github.com/pingcap/tidb/session.GetRows4Test()
      session/tidb.go:350 +0x121
  github.com/pingcap/tidb/session.ResultSetToStringSlice()
      session/tidb.go:368 +0xbe
  github.com/pingcap/tidb/testkit.(*TestKit).ResultSetToResultWithCtx()
      testkit/testkit.go:239 +0xac
  github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
      testkit/testkit.go:174 +0x275
  github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
      testkit/testkit.go:149 +0xeb
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1166 +0x498
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3392 +0x7aa
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x64
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3763 +0x130
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2155 +0x15a
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1669 +0x35a
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1599 +0x11a
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3385 +0x74a
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3306 +0x4b
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:227 +0x76
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:200 +0xcd
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:68 +0x3c9
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1141 +0x49
  testing.tRunner()
      GOROOT/src/testing/testing.go:1595 +0x238
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1648 +0x44
Goroutine 49892 (running) created at:
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1158 +0x472
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3392 +0x7aa
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x64
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3763 +0x130
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2155 +0x15a
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1669 +0x35a
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1599 +0x11a
  github.com/pingcap/tidb/session.bootstrapSessionImpl()
      session/session.go:3385 +0x74a
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3306 +0x4b
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:227 +0x76
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:200 +0xcd
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:68 +0x3c9
  executor/test/indexmergereadtest/indexmergereadtest_test.TestProcessInfoRaceWithIndexScan()
      executor/test/indexmergereadtest/index_merge_reader_test.go:1141 +0x49
  testing.tRunner()
      GOROOT/src/testing/testing.go:1595 +0x238
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1648 +0x44
================== 

4. What is your TiDB version? (Required)

@hawkingrei hawkingrei added the type/bug The issue is confirmed as a bug. label Aug 10, 2023
@ti-chi-bot ti-chi-bot bot added may-affects-5.2 This bug maybe affects 5.2.x versions. may-affects-5.3 This bug maybe affects 5.3.x versions. may-affects-5.4 This bug maybe affects 5.4.x versions. may-affects-6.1 may-affects-6.5 may-affects-7.1 labels Aug 15, 2023
@seiya-annie seiya-annie removed may-affects-5.2 This bug maybe affects 5.2.x versions. may-affects-5.3 This bug maybe affects 5.3.x versions. may-affects-5.4 This bug maybe affects 5.4.x versions. may-affects-6.1 may-affects-6.5 may-affects-7.1 labels Aug 15, 2023
@jebter jebter added the sig/planner SIG: Planner label Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants