cockroachdb / cockroachdb/cockroach
Sentry: panic.go:770: runtime error: invalid memory address or nil pointer dereference (1) attached stack trace -- stack trace: | runtime.gopanic | GOROOT/src/runtime/panic.go:770 | runtime.p...
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
This issue was auto filed by Sentry. It represents a crash or reported error on a live cluster with telemetry enabled.
Sentry Link: [https://cockroach-labs.sentry.io/issues/6912852084/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/6912852084/?referrer=webhooks_plugin)
Panic Message:
```
panic.go:770: runtime error: invalid memory address or nil pointer dereference
(1) attached stack trace
-- stack trace:
| runtime.gopanic
| GOROOT/src/runtime/panic.go:770
| runtime.panicmem
| GOROOT/src/runtime/panic.go:261
| runtime.sigpanic
| GOROOT/src/runtime/signal_unix.go:881
| github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSpliceForLevel
| external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:411
| github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSplice
| external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:388
| github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).addInternal
| external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:174
| github.com/cockroachdb/pebble/internal/arenaskl.(*Inserter).Add
| external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:97
| github.com/cockroachdb/pebble.(*memTable).apply
| external/com_github_cockroachdb_pebble/mem_table.go:236
| github.com/cockroachdb/pebble.(*DB).commitApply
| external/com_github_cockroachdb_pebble/db.go:895
| github.com/cockroachdb/pebble.(*commitPipeline).Commit
| external/com_github_cockroachdb_pebble/commit.go:327
| github.com/cockroachdb/pebble.(*DB).applyInternal
| external/com_github_cockroachdb_pebble/db.go:872
| github.com/cockroachdb/pebble.(*DB).Apply
| external/com_github_cockroachdb_pebble/db.go:801
| github.com/cockroachdb/pebble.(*Batch).Commit
| external/com_github_cockroachdb_pebble/batch.go:1491
| github.com/cockroachdb/cockroach/pkg/storage.(*writeBatch).Commit
| pkg/storage/pebble_batch.go:332
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*replicaAppBatch).ApplyToStateMachine
| pkg/kv/kvserver/replica_app_batch.go:610
| github.com/cockroachdb/cockroach/pkg/kv/kvserver/apply.(*Task).applyOneBatch
| pkg/kv/kvserver/apply/task.go:285
| github.com/cockroachdb/cockroach/pkg/kv/kvserver/apply.(*Task).ApplyCommittedEntries
| pkg/kv/kvserver/apply/task.go:246
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).handleRaftReadyRaftMuLocked
| pkg/kv/kvserver/replica_raft.go:1269
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).handleRaftReady
| pkg/kv/kvserver/replica_raft.go:846
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processReady
| pkg/kv/kvserver/store_raft.go:682
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*raftSchedulerShard).worker
| pkg/kv/kvserver/scheduler.go:419
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*raftScheduler).Start.func2
| pkg/kv/kvserver/scheduler.go:319
| github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2
| pkg/util/stop/stopper.go:498
| runtime.goexit
| src/runtime/asm_arm64.s:1222
Wraps: (2) runtime error: invalid memory address or nil pointer dereference
Error types: (1) *withstack.withStack (2) runtime.errorString
-- report composition:
runtime.errorString
panic.go:770: *withstack.withStack (top exception)
```
Stacktrace (expand for inline code snippets):
[src/runtime/asm_arm64.s#L1221-L1223](src/runtime/asm_arm64.s#L1221-L1223)
[pkg/util/stop/stopper.go#L497-L499](pkg/util/stop/stopper.go#L497-L499)
[pkg/kv/kvserver/scheduler.go#L318-L320](pkg/kv/kvserver/scheduler.go#L318-L320)
[pkg/kv/kvserver/scheduler.go#L418-L420](pkg/kv/kvserver/scheduler.go#L418-L420)
[pkg/kv/kvserver/store_raft.go#L681-L683](pkg/kv/kvserver/store_raft.go#L681-L683)
[pkg/kv/kvserver/replica_raft.go#L845-L847](pkg/kv/kvserver/replica_raft.go#L845-L847)
[pkg/kv/kvserver/replica_raft.go#L1268-L1270](pkg/kv/kvserver/replica_raft.go#L1268-L1270)
[pkg/kv/kvserver/apply/task.go#L245-L247](pkg/kv/kvserver/apply/task.go#L245-L247)
[pkg/kv/kvserver/apply/task.go#L284-L286](pkg/kv/kvserver/apply/task.go#L284-L286)
[pkg/kv/kvserver/replica_app_batch.go#L609-L611](pkg/kv/kvserver/replica_app_batch.go#L609-L611)
[pkg/storage/pebble_batch.go#L331-L333](pkg/storage/pebble_batch.go#L331-L333)
[external/com_github_cockroachdb_pebble/batch.go#L1490-L1492](external/com_github_cockroachdb_pebble/batch.go#L1490-L1492)
[external/com_github_cockroachdb_pebble/db.go#L800-L802](external/com_github_cockroachdb_pebble/db.go#L800-L802)
[external/com_github_cockroachdb_pebble/db.go#L871-L873](external/com_github_cockroachdb_pebble/db.go#L871-L873)
[external/com_github_cockroachdb_pebble/commit.go#L326-L328](external/com_github_cockroachdb_pebble/commit.go#L326-L328)
[external/com_github_cockroachdb_pebble/db.go#L894-L896](external/com_github_cockroachdb_pebble/db.go#L894-L896)
[external/com_github_cockroachdb_pebble/mem_table.go#L235-L237](external/com_github_cockroachdb_pebble/mem_table.go#L235-L237)
[external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L96-L98](external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L96-L98)
[external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L173-L175](external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L173-L175)
[external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L387-L389](external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L387-L389)
[external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L410-L412](external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go#L410-L412)
[GOROOT/src/runtime/signal_unix.go#L880-L882](GOROOT/src/runtime/signal_unix.go#L880-L882)
[GOROOT/src/runtime/panic.go#L260-L262](GOROOT/src/runtime/panic.go#L260-L262)
[GOROOT/src/runtime/panic.go#L769-L771](GOROOT/src/runtime/panic.go#L769-L771)
```
src/runtime/asm_arm64.s in runtime.goexit at line 1222
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2 at line 498
pkg/kv/kvserver/scheduler.go in pkg/kv/kvserver.(*raftScheduler).Start.func2 at line 319
pkg/kv/kvserver/scheduler.go in pkg/kv/kvserver.(*raftSchedulerShard).worker at line 419
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).processReady at line 682
pkg/kv/kvserver/replica_raft.go in pkg/kv/kvserver.(*Replica).handleRaftReady at line 846
pkg/kv/kvserver/replica_raft.go in pkg/kv/kvserver.(*Replica).handleRaftReadyRaftMuLocked at line 1269
pkg/kv/kvserver/apply/task.go in pkg/kv/kvserver/apply.(*Task).ApplyCommittedEntries at line 246
pkg/kv/kvserver/apply/task.go in pkg/kv/kvserver/apply.(*Task).applyOneBatch at line 285
pkg/kv/kvserver/replica_app_batch.go in pkg/kv/kvserver.(*replicaAppBatch).ApplyToStateMachine at line 610
pkg/storage/pebble_batch.go in pkg/storage.(*writeBatch).Commit at line 332
external/com_github_cockroachdb_pebble/batch.go in github.com/cockroachdb/pebble.(*Batch).Commit at line 1491
external/com_github_cockroachdb_pebble/db.go in github.com/cockroachdb/pebble.(*DB).Apply at line 801
external/com_github_cockroachdb_pebble/db.go in github.com/cockroachdb/pebble.(*DB).applyInternal at line 872
external/com_github_cockroachdb_pebble/commit.go in github.com/cockroachdb/pebble.(*commitPipeline).Commit at line 327
external/com_github_cockroachdb_pebble/db.go in github.com/cockroachdb/pebble.(*DB).commitApply at line 895
external/com_github_cockroachdb_pebble/mem_table.go in github.com/cockroachdb/pebble.(*memTable).apply at line 236
external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go in github.com/cockroachdb/pebble/internal/arenaskl.(*Inserter).Add at line 97
external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go in github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).addInternal at line 174
external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go in github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSplice at line 388
external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go in github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSpliceForLevel at line 411
GOROOT/src/runtime/signal_unix.go in runtime.sigpanic at line 881
GOROOT/src/runtime/panic.go in runtime.panicmem at line 261
GOROOT/src/runtime/panic.go in runtime.gopanic at line 770
```
### Tags
| Tag | Value |
| --- | --- |
| Command | start-single-node |
| Environment | v24.3.11 |
| Go Version | go1.22.8 X:nocoverageredesign |
| Platform | linux arm64 |
| Distribution | CCL |
| Cockroach Release | v24.3.11 |
| Cockroach SHA | 48c74189a0dabf38e990e4a2d94431e630945822 |
| # of CPUs | 8 |
| # of Goroutines | 447 |
Jira issue: CRDB-54937
Contributor guide
Research direction
Start at external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:411, then trace the callers through skl.go, mem_table.go, pkg/storage/pebble_batch.go, and the replica apply path shown in the stack trace. Determine the nil dereference's cause and confirm that the affected commit path no longer crashes, adding regression coverage if the investigation identifies a reproducible case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100