Skip to content

server: grant coordinators call GetMetrics on closed Pebble instances #140454

Closed
@RaduBerinde

Description

@RaduBerinde

I attempted to make a change in Pebble which cleared out the fileCacheHandle on Close

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x1156aba]

goroutine 61812 [running]:
github.com/cockroachdb/pebble.(*fileCacheHandle).metrics(0xc00301eb40)
	external/com_github_cockroachdb_pebble/file_cache.go:192 +0x1a
github.com/cockroachdb/pebble.(*DB).Metrics(0xc00baedb08)
	external/com_github_cockroachdb_pebble/db.go:2051 +0xe2a
github.com/cockroachdb/cockroach/pkg/storage.(*Pebble).GetMetrics(_)
	pkg/storage/pebble.go:1842 +0x65
github.com/cockroachdb/cockroach/pkg/server.(*nodePebbleMetricsProvider).GetPebbleMetrics.func1(0xc004b21808)
	pkg/server/node.go:1391 +0x74
github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Stores).VisitStores.func1(0x8f6d150?, 0xc0061e6150?)
	pkg/kv/kvserver/stores.go:146 +0x26
github.com/cockroachdb/cockroach/pkg/util/syncutil.(*Map[...]).Range(0x8bd1ce0?, 0xc00b223d38)
	pkg/util/syncutil/map.go:391 +0x10d
github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Stores).VisitStores(0x49f46e?, 0x1b3e47d?)
	pkg/kv/kvserver/stores.go:145 +0x55
github.com/cockroachdb/cockroach/pkg/server.(*nodePebbleMetricsProvider).GetPebbleMetrics(0xc00a41cf48)
	pkg/server/node.go:1389 +0x1a8
github.com/cockroachdb/cockroach/pkg/util/admission.(*StoreGrantCoordinators).SetPebbleMetricsProvider.func1()
	pkg/util/admission/grant_coordinator.go:120 +0x1bb
created by github.com/cockroachdb/cockroach/pkg/util/admission.(*StoreGrantCoordinators).SetPebbleMetricsProvider in goroutine 59280
	pkg/util/admission/grant_coordinator.go:96 +0x389

The engine closer is registered here:

stopper.AddCloser(&engines)

The grant coordinator closer is here:

stopper.AddCloser(gcoords)

There are two problems:

Jira issue: CRDB-47168

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions