Skip to content

admission: data race in newTenantInfo #72485

@andreimatei

Description

@andreimatei

The sql package failure in:
https://teamcity.cockroachdb.com/viewLog.html?buildId=3652058&buildTypeId=Cockroach_UnitTests

Use after free?

WARNING: DATA RACE
Write at 0x00c007d5c158 by goroutine 149:
  github.com/cockroachdb/cockroach/pkg/util/admission.newTenantInfo()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/work_queue.go:516 +0x185c
  github.com/cockroachdb/cockroach/pkg/util/admission.(*WorkQueue).Admit()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/work_queue.go:250 +0x17a6
  github.com/cockroachdb/cockroach/pkg/kv/kvserver.KVAdmissionControllerImpl.AdmitKVWork()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvserver/store.go:3080 +0x31c
  github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*KVAdmissionControllerImpl).AdmitKVWork()
      <autogenerated>:1 +0xb4
  github.com/cockroachdb/cockroach/pkg/server.(*Node).Batch()
      /go/src/github.com/cockroachdb/cockroach/pkg/server/node.go:968 +0x199
  github.com/cockroachdb/cockroach/pkg/rpc.internalClientAdapter.Batch()
      /go/src/github.com/cockroachdb/cockroach/pkg/rpc/context.go:482 +0xc9
  github.com/cockroachdb/cockroach/pkg/rpc.(*internalClientAdapter).Batch()
      <autogenerated>:1 +0x2e
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*grpcTransport).sendBatch()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/transport.go:203 +0x265
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*grpcTransport).SendNext()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/transport.go:185 +0x297
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.raceTransport.SendNext()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/transport_race.go:79 +0x45c
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*raceTransport).SendNext()
      <autogenerated>:1 +0x117
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).sendToReplicas()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go:1966 +0xbb4
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).sendPartialBatch()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go:1558 +0x459
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).divideAndSendBatchToRanges()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go:1170 +0x1fbe
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).Send()
      /go/src/github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go:804 +0x7c4
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*txnLockGatekeeper).SendLocked()
...

Previous write at 0x00c007d5c158 by goroutine 661:
  github.com/cockroachdb/cockroach/pkg/util/admission.(*WorkQueue).gcTenantsAndResetTokens()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/work_queue.go:447 +0x1d9
  github.com/cockroachdb/cockroach/pkg/util/admission.makeWorkQueue.func1()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/work_queue.go:219 +0x12f

Goroutine 149 (running) created at:
  github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommandsAsync()
      /go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:576 +0x20d
  github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).serveImpl()
      /go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:307 +0x959
  github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveConn()
      /go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:160 +0x344
  github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).ServeConn()
      /go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/server.go:700 +0x1237
  github.com/cockroachdb/cockroach/pkg/server.(*SQLServer).startServeSQL.func1.1()
      /go/src/github.com/cockroachdb/cockroach/pkg/server/server.go:2358 +0x16c
  github.com/cockroachdb/cockroach/pkg/util/netutil.(*Server).ServeWith.func1()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/netutil/net.go:156 +0x11d

Goroutine 661 (running) created at:
  github.com/cockroachdb/cockroach/pkg/util/admission.makeWorkQueue()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/work_queue.go:213 +0x2d2
  github.com/cockroachdb/cockroach/pkg/util/admission.NewGrantCoordinators()
      /go/src/github.com/cockroachdb/cockroach/pkg/util/admission/granter.go:674 +0x8b7
  github.com/cockroachdb/cockroach/pkg/server.NewServer()
      /go/src/github.com/cockroachdb/cockroach/pkg/server/server.go:450 +0x18e9
  github.com/cockroachdb/cockroach/pkg/server.testServerFactoryImpl.New()
      /go/src/github.com/cockroachdb/cockroach/pkg/server/testserver.go:1328 +0x316
  github.com/cockroachdb/cockroach/pkg/server.(*testServerFactoryImpl).New()
      <autogenerated>:1 +0x84
  github.com/cockroachdb/cockroach/pkg/testutils/serverutils.NewServer()
      /go/src/github.com/cockroachdb/cockroach/pkg/testutils/serverutils/test_server_shim.go:297 +0xda
  github.com/cockroachdb/cockroach/pkg/testutils/serverutils.StartServer()
      /go/src/github.com/cockroachdb/cockroach/pkg/testutils/serverutils/test_server_shim.go:278 +0x6a
  github.com/cockroachdb/cockroach/pkg/sql.TestFuncNull()
      /go/src/github.com/cockroachdb/cockroach/pkg/sql/builtin_test.go:33 +0x16e
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1193 +0x202

Metadata

Metadata

Assignees

Labels

C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.C-test-failureBroken test (automatically or manually discovered).

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions