DATA RACE on the MemTracker
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Bug Report
Please answer these questions before submitting your issue. Thanks!
### 1. Minimal reproduce step (Required)
```
WARNING: DATA RACE
Write at 0x00c019f6ef90 by goroutine 589916:
github.com/pingcap/tidb/sessionctx/variable.(*SessionVars).InitStatementContext()
sessionctx/variable/session.go:1307 +0x1f0
github.com/pingcap/tidb/executor.ResetContextOfStmt()
executor/executor.go:1927 +0x13f
github.com/pingcap/tidb/session.(*session).ExecuteStmt()
session/session.go:2112 +0x391
github.com/pingcap/tidb/testkit.(*TestKit).ExecWithContext()
testkit/testkit.go:279 +0x5bb
github.com/pingcap/tidb/testkit.(*TestKit).MustQueryWithContext()
testkit/testkit.go:136 +0x154
github.com/pingcap/tidb/testkit.(*TestKit).MustQuery()
testkit/testkit.go:130 +0x11c5
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory()
infoschema/tables_test.go:1627 +0x1189
github.com/pingcap/tidb/executor.(*SortExec).Next()
executor/sort.go:116 +0x793
github.com/pingcap/tidb/executor.Next()
executor/executor.go:324 +0x5c3
github.com/pingcap/tidb/executor.(*ExplainExec).executeAnalyzeExec()
executor/explain.go:125 +0x694
github.com/pingcap/tidb/executor.(*ExplainExec).generateExplainInfo()
executor/explain.go:135 +0x44
github.com/pingcap/tidb/executor.(*ExplainExec).Next()
executor/explain.go:71 +0x9e
github.com/pingcap/tidb/executor.Next()
executor/executor.go:324 +0x5c3
github.com/pingcap/tidb/executor.(*ExecStmt).next()
executor/adapter.go:1106 +0x89
github.com/pingcap/tidb/executor.(*recordSet).Next()
executor/adapter.go:153 +0x164
github.com/pingcap/tidb/session.(*execStmtResult).Next()
:1 +0x76
github.com/pingcap/tidb/session.GetRows4Test()
session/tidb.go:336 +0xea
github.com/pingcap/tidb/testkit.(*TestKit).QueryToErr()
testkit/testkit.go:191 +0x2f1
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory()
infoschema/tables_test.go:1596 +0x654
github.com/pingcap/failpoint.parseTerm()
external/com_github_pingcap_failpoint/terms.go:149 +0x389
github.com/pingcap/failpoint.parse()
external/com_github_pingcap_failpoint/terms.go:126 +0xa8
github.com/pingcap/failpoint.newTerms()
external/com_github_pingcap_failpoint/terms.go:98 +0x50
github.com/pingcap/failpoint.(*Failpoint).Enable()
external/com_github_pingcap_failpoint/failpoint.go:54 +0x44
github.com/pingcap/failpoint.(*Failpoints).Enable()
external/com_github_pingcap_failpoint/failpoints.go:105 +0x276
github.com/pingcap/failpoint.Enable()
external/com_github_pingcap_failpoint/failpoints.go:222 +0xb0
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory()
infoschema/tables_test.go:1571 +0xb1
testing.tRunner()
GOROOT/src/testing/testing.go:1446 +0x216
testing.(*T).Run.func1()
GOROOT/src/testing/testing.go:1493 +0x47
Previous read at 0x00c019f6ef90 by goroutine 600651:
github.com/pingcap/tidb/util.(*ProcessInfo).ToRow()
util/processinfo.go:119 +0xae
github.com/pingcap/tidb/util/servermemorylimit.(*memoryOpsHistoryManager).recordOne()
util/servermemorylimit/servermemorylimit.go:145 +0xe7
github.com/pingcap/tidb/util/servermemorylimit.killSessIfNeeded()
util/servermemorylimit/servermemorylimit.go:118 +0x47a
github.com/pingcap/tidb/util/servermemorylimit.(*Handle).Run()
util/servermemorylimit/servermemorylimit.go:72 +0x137
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory.func3()
infoschema/tables_test.go:1584 +0x39
Goroutine 589916 (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/infoschema.TestMain()
infoschema/main_test.go:31 +0x31b
main.main()
bazel-out/k8-fastbuild/bin/infoschema/infoschema_test_/testmain.go:216 +0x5e8
Goroutine 600651 (running) created at:
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory()
infoschema/tables_test.go:1584 +0x4b9
github.com/pingcap/failpoint.parseTerm()
external/com_github_pingcap_failpoint/terms.go:149 +0x389
github.com/pingcap/failpoint.parse()
external/com_github_pingcap_failpoint/terms.go:126 +0xa8
github.com/pingcap/failpoint.newTerms()
external/com_github_pingcap_failpoint/terms.go:98 +0x50
github.com/pingcap/failpoint.(*Failpoint).Enable()
external/com_github_pingcap_failpoint/failpoint.go:54 +0x44
github.com/pingcap/failpoint.(*Failpoints).Enable()
external/com_github_pingcap_failpoint/failpoints.go:105 +0x276
github.com/pingcap/failpoint.Enable()
external/com_github_pingcap_failpoint/failpoints.go:222 +0xb0
github.com/pingcap/tidb/infoschema_test.TestMemoryUsageAndOpsHistory()
infoschema/tables_test.go:1571 +0xb1
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)
Contributor guide
Assessment
This issue has not been assessed yet.