Skip to content

DATA RACE in the BindRecord.Bindings #40295

@hawkingrei

Description

@hawkingrei

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

==================
WARNING: DATA RACE
Read at 0x00c00719fcc0 by goroutine 14743:
  github.com/pingcap/tidb/bindinfo.(*BindHandle).getOnePendingVerifyJob()
      bindinfo/handle.go:1133 +0x1b7
  github.com/pingcap/tidb/bindinfo.(*BindHandle).HandleEvolvePlanTask()
      bindinfo/handle.go:1214 +0xa4
  github.com/pingcap/tidb/domain.(*Domain).handleEvolvePlanTasksLoop.func1()
      domain/domain.go:1575 +0x259

Previous write at 0x00c00719fcc0 by goroutine 94:
  reflect.typedmemmove()
      GOROOT/src/runtime/mbarrier.go:178 +0x0
  internal/reflectlite.typedmemmove()
      GOROOT/src/runtime/mbarrier.go:196 +0x18
  sort.insertionSort_func()
      GOROOT/src/sort/zsortfunc.go:13 +0x94
  sort.pdqsort_func()
      GOROOT/src/sort/zsortfunc.go:73 +0x3cb
  sort.Slice()
      GOROOT/src/sort/slice.go:23 +0xc4
  github.com/pingcap/tidb/executor.(*ShowExec).fetchShowBind()
      executor/show.go:328 +0x352
  github.com/pingcap/tidb/executor.(*ShowExec).fetchAll()
      executor/show.go:247 +0xd32
  github.com/pingcap/tidb/executor.(*ShowExec).Next()
      executor/show.go:118 +0x158
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:328 +0x632
  github.com/pingcap/tidb/executor.(*ExecStmt).next()
      executor/adapter.go:1153 +0x9d
  github.com/pingcap/tidb/executor.(*recordSet).Next()
      executor/adapter.go:156 +0x179
  github.com/pingcap/tidb/session.(*execStmtResult).Next()
      <autogenerated>:1 +0x76
  github.com/pingcap/tidb/session.GetRows4Test()
      session/tidb.go:336 +0x13a
  github.com/pingcap/tidb/session.ResultSetToStringSlice()
      session/tidb.go:354 +0xca
  github.com/pingcap/tidb/testkit.(*TestKit).ResultSetToResultWithCtx()
      testkit/testkit.go:221 +0xbc
  github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
      testkit/testkit.go:156 +0x284
  github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
      testkit/testkit.go:147 +0x107
  github.com/pingcap/tidb/bindinfo_test.TestRuntimeHintsInEvolveTasks()
      bindinfo/bind_test.go:686 +0x1fe
  github.com/pingcap/tidb/domain.(*Domain).LoadSysVarCacheLoop()
      domain/domain.go:1368 +0xb9
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3337 +0x78c
  github.com/pingcap/tidb/domain.(*Domain).GetSessionCache()
      domain/sysvar_cache.go:62 +0x6a
  github.com/pingcap/tidb/session.(*session).loadCommonGlobalVariablesIfNeeded()
      session/session.go:3652 +0x11e
  github.com/pingcap/tidb/session.(*session).ExecuteStmt()
      session/session.go:2141 +0x2fb
  github.com/pingcap/tidb/session.(*session).ExecuteInternal()
      session/session.go:1675 +0x4eb
  github.com/pingcap/tidb/domain.(*Domain).LoadPrivilegeLoop()
      domain/domain.go:1310 +0x143
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3330 +0x72c
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:84 +0x84
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:69 +0xd0
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:61 +0x3b2
  github.com/pingcap/tidb/bindinfo_test.TestRuntimeHintsInEvolveTasks()
      bindinfo/bind_test.go:675 +0xe4
  testing.tRunner()
      GOROOT/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1493 +0x47

Goroutine 14743 (running) created at:
  github.com/pingcap/tidb/domain.(*Domain).handleEvolvePlanTasksLoop()
      domain/domain.go:1561 +0x159
  github.com/pingcap/tidb/domain.(*Domain).LoadBindInfoLoop()
      domain/domain.go:1511 +0x219
  github.com/pingcap/tidb/session.BootstrapSession()
      session/session.go:3324 +0x688
  github.com/pingcap/tidb/testkit.bootstrap()
      testkit/mockstore.go:84 +0x84
  github.com/pingcap/tidb/testkit.CreateMockStoreAndDomain()
      testkit/mockstore.go:69 +0xd0
  github.com/pingcap/tidb/testkit.CreateMockStore()
      testkit/mockstore.go:61 +0x3b2
  github.com/pingcap/tidb/bindinfo_test.TestRuntimeHintsInEvolveTasks()
      bindinfo/bind_test.go:675 +0xe4
  testing.tRunner()
      GOROOT/src/testing/testing.go:1446 +0x216
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1493 +0x47

Goroutine 94 (running) created at:
  testing.(*T).Run()
      GOROOT/src/testing/testing.go:1493 +0x75d
  testing.runTests.func1()
      GOROOT/src/testing/testing.go:1846 +0x99
  testing.tRunner()
      GOROOT/src/testing/testing.go:1446 +0x216
  testing.runTests()
      GOROOT/src/testing/testing.go:1844 +0x7ec
  testing.(*M).Run()
      GOROOT/src/testing/testing.go:1726 +0xa84
  go.uber.org/goleak.VerifyTestMain()
      external/org_uber_go_goleak/testmain.go:53 +0x70
  github.com/pingcap/tidb/bindinfo_test.TestMain()
      bindinfo/main_test.go:32 +0x43c
  main.main()
      bazel-out/k8-fastbuild/bin/bindinfo/bindinfo_test_/testmain.go:272 +0x7c9
==================

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

3. What did you see instead (Required)

4. What is your TiDB version? (Required)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions