Skip to content

server: data race in (*diskStatsMap).initDiskStatsMap() #91414

@renatolabs

Description

@renatolabs

This data race is sometimes observed when TestClusterConnectivity is run with the race detector enabled:

==================                                                                                                                                                                                                               
WARNING: DATA RACE                                                                                                                                                                                                               
Write at 0x00c0038ca920 by goroutine 20258:                                                                                                                                                                                      
  github.com/cockroachdb/cockroach/pkg/server.(*diskStatsMap).initDiskStatsMap()                                                                                                                                                 
      github.com/cockroachdb/cockroach/pkg/server/node.go:839 +0x5c                                                                                                                                                              
  github.com/cockroachdb/cockroach/pkg/server.(*Node).registerEnginesForDiskStatsMap()                                                                                                                                           
      github.com/cockroachdb/cockroach/pkg/server/node.go:859 +0x3b38                                                                                                                                                            
  github.com/cockroachdb/cockroach/pkg/server.(*Server).PreStart()                                                                                                                                                               
      github.com/cockroachdb/cockroach/pkg/server/server.go:1703 +0x3ad0                                                                                                                                                         
  github.com/cockroachdb/cockroach/pkg/server.(*Server).Start()                                                                                                                                                                  
      github.com/cockroachdb/cockroach/pkg/server/server.go:1045 +0x38                                                                                                                                                           
  github.com/cockroachdb/cockroach/pkg/server.(*TestServer).Start()                                                                                                                                                              
      github.com/cockroachdb/cockroach/pkg/server/testserver.go:593 +0x50                                                                                                                                                        
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).startServer()                                                                                                                                        
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:601 +0x9c                                                                                                                                        
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).Start.func1()                                                                                                                                        
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:381 +0xbc                       
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).Start.func4()
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:382 +0x44
                                                                                                                
Previous read at 0x00c0038ca920 by goroutine 21009:                                                             
  github.com/cockroachdb/cockroach/pkg/server.(*diskStatsMap).empty()   
      github.com/cockroachdb/cockroach/pkg/server/node.go:835 +0x44                                             
  github.com/cockroachdb/cockroach/pkg/server.(*diskStatsMap).tryPopulateAdmissionDiskStats()
      github.com/cockroachdb/cockroach/pkg/server/node.go:808 +0x74                                             
  github.com/cockroachdb/cockroach/pkg/server.(*Node).GetPebbleMetrics()                                        
      github.com/cockroachdb/cockroach/pkg/server/node.go:866 +0xc4
  github.com/cockroachdb/cockroach/pkg/util/admission.(*StoreGrantCoordinators).SetPebbleMetricsProvider.func1()
      github.com/cockroachdb/cockroach/pkg/util/admission/grant_coordinator.go:107 +0x164                       
                                                                                                                
Goroutine 20258 (running) created at:                                                                           
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).Start()                             
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:380 +0x568                      
  github.com/cockroachdb/cockroach/pkg/server_test.TestClusterConnectivity.func2()          
      github.com/cockroachdb/cockroach/pkg/server_test/pkg/server/connectivity_test.go:275 +0x5d8
  testing.tRunner()                                                                                             
      GOROOT/src/testing/testing.go:1446 +0x188                                                                 
  testing.(*T).Run.func1()                                                                                      
      GOROOT/src/testing/testing.go:1493 +0x40                                                                  
                                                                                                                
Goroutine 21009 (running) created at:                                                                           
  github.com/cockroachdb/cockroach/pkg/util/admission.(*StoreGrantCoordinators).SetPebbleMetricsProvider()      
      github.com/cockroachdb/cockroach/pkg/util/admission/grant_coordinator.go:98 +0x258
  github.com/cockroachdb/cockroach/pkg/server.(*Server).PreStart()                              
      github.com/cockroachdb/cockroach/pkg/server/server.go:1592 +0x2e9c          
  github.com/cockroachdb/cockroach/pkg/server.(*Server).Start()           
      github.com/cockroachdb/cockroach/pkg/server/server.go:1045 +0x38                                          
  github.com/cockroachdb/cockroach/pkg/server.(*TestServer).Start()                                             
      github.com/cockroachdb/cockroach/pkg/server/testserver.go:593 +0x50                                       
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).startServer()
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:601 +0x9c
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).Start.func1()                       
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:381 +0xbc
  github.com/cockroachdb/cockroach/pkg/testutils/testcluster.(*TestCluster).Start.func4()
      github.com/cockroachdb/cockroach/pkg/testutils/testcluster/testcluster.go:382 +0x44                       
==================                                                                                              

Jira issue: CRDB-21249

Metadata

Metadata

Assignees

Labels

A-admission-controlA-storageRelating to our storage engine (Pebble) on-disk storage.C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.T-storageStorage Teamv23.1.2

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions