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 RPCInterceptorChain #44758

Closed
Tracked by #41316
hawkingrei opened this issue Jun 18, 2023 · 0 comments · Fixed by #44772
Closed
Tracked by #41316

DATA RACE in the RPCInterceptorChain #44758

hawkingrei opened this issue Jun 18, 2023 · 0 comments · Fixed by #44772
Assignees
Labels
severity/minor 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)

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

3. What did you see instead (Required)

==================
WARNING: DATA RACE
Write at 0x00c0067cc5b8 by goroutine 28556:
  github.com/tikv/client-go/v2/tikvrpc/interceptor.(*RPCInterceptorChain).Link()
      external/com_github_tikv_client_go_v2/tikvrpc/interceptor/interceptor.go:170 +0x2b2
  github.com/tikv/client-go/v2/tikvrpc/interceptor.ChainRPCInterceptors()
      external/com_github_tikv_client_go_v2/tikvrpc/interceptor/interceptor.go:202 +0x104
  github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).AddRPCInterceptor()
      external/com_github_tikv_client_go_v2/txnkv/txnsnapshot/snapshot.go:914 +0x14f
  github.com/pingcap/tidb/store/driver/txn.(*tikvSnapshot).SetOption()
      store/driver/txn/snapshot.go:127 +0x778
  github.com/pingcap/tidb/executor.setOptionForTopSQL()
      executor/executor.go:2343 +0xf2
  github.com/pingcap/tidb/executor.(*PointGetExecutor).Open()
      executor/point_get.go:191 +0x164
  github.com/pingcap/tidb/executor.(*baseExecutor).Open()
      executor/executor.go:204 +0x25a
  github.com/pingcap/tidb/executor.(*SelectLockExec).Open()
      executor/executor.go:1254 +0x26b
  github.com/pingcap/tidb/executor.(*baseExecutor).Open()
      executor/executor.go:204 +0xf7
  github.com/pingcap/tidb/executor.(*ProjectionExec).Open()
      executor/projection.go:86 +0x4b
  github.com/pingcap/tidb/executor.(*UnionExec).resultPuller()
      executor/executor.go:1966 +0x494
  github.com/pingcap/tidb/executor.(*UnionExec).initialize.func1()
      executor/executor.go:1936 +0x64
Previous read at 0x00c0067cc5b8 by goroutine 28557:
  github.com/tikv/client-go/v2/tikvrpc/interceptor.(*RPCInterceptorChain).Wrap()
      external/com_github_tikv_client_go_v2/tikvrpc/interceptor/interceptor.go:183 +0x37
  github.com/tikv/client-go/v2/internal/client.interceptedClient.SendRequest()
      external/com_github_tikv_client_go_v2/internal/client/client_interceptor.go:59 +0x27b
  github.com/tikv/client-go/v2/internal/client.(*interceptedClient).SendRequest()
      <autogenerated>:1 +0xbd
  github.com/tikv/client-go/v2/internal/client.reqCollapse.SendRequest()
      external/com_github_tikv_client_go_v2/internal/client/client_collapse.go:74 +0x130
  github.com/tikv/client-go/v2/internal/client.(*reqCollapse).SendRequest()
      <autogenerated>:1 +0xae
  github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).sendReqToRegion()
      external/com_github_tikv_client_go_v2/internal/locate/region_request.go:1412 +0x1238
  github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).SendReqCtx()
      external/com_github_tikv_client_go_v2/internal/locate/region_request.go:1220 +0x1f89
  github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*ClientHelper).SendReqCtx()
      external/com_github_tikv_client_go_v2/txnkv/txnsnapshot/client_helper.go:146 +0x373
  github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).get()
      external/com_github_tikv_client_go_v2/txnkv/txnsnapshot/snapshot.go:660 +0x13f2
  github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).Get()
      external/com_github_tikv_client_go_v2/txnkv/txnsnapshot/snapshot.go:565 +0x6fe
  github.com/pingcap/tidb/store/driver/txn.(*tikvSnapshot).Get()
      store/driver/txn/snapshot.go:60 +0x21e
  github.com/pingcap/tidb/executor.(*PointGetExecutor).get()
      executor/point_get.go:493 +0x677
  github.com/pingcap/tidb/executor.(*PointGetExecutor).getAndLock()
      executor/point_get.go:358 +0x1ba
  github.com/pingcap/tidb/executor.(*PointGetExecutor).Next()
      executor/point_get.go:310 +0xe34
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:329 +0x335
  github.com/pingcap/tidb/executor.(*SelectLockExec).Next()
      executor/executor.go:1260 +0xeb
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:329 +0x335
  github.com/pingcap/tidb/executor.(*ProjectionExec).unParallelExecute()
      executor/projection.go:196 +0x304
  github.com/pingcap/tidb/executor.(*ProjectionExec).Next()
      executor/projection.go:183 +0x92
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:329 +0x335
  github.com/pingcap/tidb/executor.(*UnionExec).resultPuller()
      executor/executor.go:1983 +0x984
  github.com/pingcap/tidb/executor.(*UnionExec).initialize.func1()
      executor/executor.go:1936 +0x64
Goroutine 28556 (running) created at:
  github.com/pingcap/tidb/executor.(*UnionExec).initialize()
      executor/executor.go:1936 +0x4e6
  github.com/pingcap/tidb/executor.(*UnionExec).Next()
      executor/executor.go:2009 +0xca
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:329 +0x335
  github.com/pingcap/tidb/executor.(*HashAggExec).fetchChildData()
      executor/aggregate.go:821 +0x324
  github.com/pingcap/tidb/executor.(*HashAggExec).prepare4ParallelExec.func3()
      executor/aggregate.go:858 +0x64
Goroutine 28557 (running) created at:
  github.com/pingcap/tidb/executor.(*UnionExec).initialize()
      executor/executor.go:1936 +0x4e6
  github.com/pingcap/tidb/executor.(*UnionExec).Next()
      executor/executor.go:2009 +0xca
  github.com/pingcap/tidb/executor.Next()
      executor/executor.go:329 +0x335
  github.com/pingcap/tidb/executor.(*HashAggExec).fetchChildData()
      executor/aggregate.go:821 +0x324
  github.com/pingcap/tidb/executor.(*HashAggExec).prepare4ParallelExec.func3()
      executor/aggregate.go:858 +0x64
================== 

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/minor type/bug The issue is confirmed as a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants