cockroachdb / cockroachdb/cockroach

Sentry: store_raft.go:559: log.Fatal: while applying snapshot: while ingesting [× × × × × × × ×] and excising /Table/117/1/×/×-/Max: link × ×: permission denied (1) attached stack trace ...

Open
#172,757 1 comment 0 reactions 0 assignees View on GitHub
branch-release-25.2 C-bug O-sentry T-kv X-blathers-triaged
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/7628896064/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7628896064/?referrer=webhooks_plugin)

Panic Message:

```
store_raft.go:559: log.Fatal: while applying snapshot: while ingesting [× × × × × × × ×] and excising /Table/117/1/×/×-/Max: link × ×: permission denied
(1) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest.func1
| pkg/kv/kvserver/store_raft.go:559
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).withReplicaForRequest
| pkg/kv/kvserver/store_raft.go:435
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest
| pkg/kv/kvserver/store_raft.go:499
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).receiveSnapshot
| pkg/kv/kvserver/store_snapshot.go:603
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot.func1
| pkg/kv/kvserver/store_raft.go:282
| github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| pkg/util/stop/stopper.go:350
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot
| pkg/kv/kvserver/store_raft.go:279
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*RaftTransport).RaftSnapshot
| pkg/kv/kvserver/raft_transport.go:638
| github.com/cockroachdb/cockroach/pkg/kv/kvserver._MultiRaft_RaftSnapshot_Handler
| bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:267
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.StreamServerInterceptor.func13
| pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:159
| google.golang.org/grpc.getChainStreamHandler.func1
| external/org_golang_google_grpc/server.go:1504
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func4
| pkg/rpc/context.go:181
| google.golang.org/grpc.getChainStreamHandler.func1
| external/org_golang_google_grpc/server.go:1504
| github.com/cockroachdb/cockroach/pkg/rpc.kvAuth.streamInterceptor
| pkg/rpc/auth.go:152
| google.golang.org/grpc.getChainStreamHandler.func1
| external/org_golang_google_grpc/server.go:1504
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func2.1
| pkg/rpc/context.go:142
| github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| pkg/util/stop/stopper.go:350
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func2
| pkg/rpc/context.go:141
| google.golang.org/grpc.NewServer.chainStreamServerInterceptors.chainStreamInterceptors.func2
| external/org_golang_google_grpc/server.go:1495
| google.golang.org/grpc.(*Server).processStreamingRPC
| external/org_golang_google_grpc/server.go:1659
| google.golang.org/grpc.(*Server).handleStream
| external/org_golang_google_grpc/server.go:1739
| google.golang.org/grpc.(*Server).serveStreams.func1.1
| external/org_golang_google_grpc/server.go:970
| runtime.goexit
| src/runtime/asm_arm64.s:1223
Wraps: (2) secondary error attachment
| while applying snapshot: while ingesting [× × × × × × × ×] and excising /Table/117/1/×/×-/Max: link × ×: permission denied
| (1) attached stack trace
| -- stack trace:
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).handleRaftReadyRaftMuLocked
| | pkg/kv/kvserver/replica_raft.go:1191
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest.func1
| | pkg/kv/kvserver/store_raft.go:558
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).withReplicaForRequest
| | pkg/kv/kvserver/store_raft.go:435
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest
| | pkg/kv/kvserver/store_raft.go:499
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).receiveSnapshot
| | pkg/kv/kvserver/store_snapshot.go:603
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot.func1
| | pkg/kv/kvserver/store_raft.go:282
| | github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| | pkg/util/stop/stopper.go:350
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot
| | pkg/kv/kvserver/store_raft.go:279
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*RaftTransport).RaftSnapshot
| | pkg/kv/kvserver/raft_transport.go:638
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver._MultiRaft_RaftSnapshot_Handler
| | bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:267
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.StreamServerInterceptor.func13
| | pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:159
| | google.golang.org/grpc.getChainStreamHandler.func1
| | external/org_golang_google_grpc/server.go:1504
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func4
| | pkg/rpc/context.go:181
| | google.golang.org/grpc.getChainStreamHandler.func1
| | external/org_golang_google_grpc/server.go:1504
| | github.com/cockroachdb/cockroach/pkg/rpc.kvAuth.streamInterceptor
| | pkg/rpc/auth.go:152
| | google.golang.org/grpc.getChainStreamHandler.func1
| | external/org_golang_google_grpc/server.go:1504
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func2.1
| | pkg/rpc/context.go:142
| | github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| | pkg/util/stop/stopper.go:350
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func2
| | pkg/rpc/context.go:141
| | google.golang.org/grpc.NewServer.chainStreamServerInterceptors.chainStreamInterceptors.func2
| | external/org_golang_google_grpc/server.go:1495
| | google.golang.org/grpc.(*Server).processStreamingRPC
| | external/org_golang_google_grpc/server.go:1659
| | google.golang.org/grpc.(*Server).handleStream
| | external/org_golang_google_grpc/server.go:1739
| | google.golang.org/grpc.(*Server).serveStreams.func1.1
| | external/org_golang_google_grpc/server.go:970
| Wraps: (2) while applying snapshot
| Wraps: (3) attached stack trace
| -- stack trace:
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).applySnapshot
| | pkg/kv/kvserver/replica_raftstorage.go:607
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).handleRaftReadyRaftMuLocked
| | pkg/kv/kvserver/replica_raft.go:1190
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest.func1
| | pkg/kv/kvserver/store_raft.go:558
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).withReplicaForRequest
| | pkg/kv/kvserver/store_raft.go:435
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).processRaftSnapshotRequest
| | pkg/kv/kvserver/store_raft.go:499
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).receiveSnapshot
| | pkg/kv/kvserver/store_snapshot.go:603
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot.func1
| | pkg/kv/kvserver/store_raft.go:282
| | github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| | pkg/util/stop/stopper.go:350
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).HandleSnapshot
| | pkg/kv/kvserver/store_raft.go:279
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*RaftTransport).RaftSnapshot
| | pkg/kv/kvserver/raft_transport.go:638
| | github.com/cockroachdb/cockroach/pkg/kv/kvserver._MultiRaft_RaftSnapshot_Handler
| | bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:267
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.StreamServerInterceptor.func13
| | pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:159
| | google.golang.org/grpc.getChainStreamHandler.func1
| | external/org_golang_google_grpc/server.go:1504
| | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func4
| | pkg/rpc/context.go:181
| | google.golang.org/grpc.getChainStreamHandler.func1
| | external/org_golang_google_grpc/server.go:1504
| | github.com/cock...
```

Stacktrace (expand for inline code snippets):

[src/runtime/asm_arm64.s#L1222-L1224](src/runtime/asm_arm64.s#L1222-L1224)
[external/org_golang_google_grpc/server.go#L969-L971](external/org_golang_google_grpc/server.go#L969-L971)
[external/org_golang_google_grpc/server.go#L1738-L1740](external/org_golang_google_grpc/server.go#L1738-L1740)
[external/org_golang_google_grpc/server.go#L1658-L1660](external/org_golang_google_grpc/server.go#L1658-L1660)
[external/org_golang_google_grpc/server.go#L1494-L1496](external/org_golang_google_grpc/server.go#L1494-L1496)
[pkg/rpc/context.go#L140-L142](pkg/rpc/context.go#L140-L142)
[pkg/util/stop/stopper.go#L349-L351](pkg/util/stop/stopper.go#L349-L351)
[pkg/rpc/context.go#L141-L143](pkg/rpc/context.go#L141-L143)
[external/org_golang_google_grpc/server.go#L1503-L1505](external/org_golang_google_grpc/server.go#L1503-L1505)
[pkg/rpc/auth.go#L151-L153](pkg/rpc/auth.go#L151-L153)
[external/org_golang_google_grpc/server.go#L1503-L1505](external/org_golang_google_grpc/server.go#L1503-L1505)
[pkg/rpc/context.go#L180-L182](pkg/rpc/context.go#L180-L182)
[external/org_golang_google_grpc/server.go#L1503-L1505](external/org_golang_google_grpc/server.go#L1503-L1505)
[pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L158-L160](pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L158-L160)
[bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/https://github.com/cockroachdb/cockroach/blob/adfe5601ff6cb72c0f65090995978ca9ebbdc647/pkg/kv/kvserver/storage_services.pb.go#L266-L268](bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/https://github.com/cockroachdb/cockroach/blob/adfe5601ff6cb72c0f65090995978ca9ebbdc647/pkg/kv/kvserver/storage_services.pb.go#L266-L268)
[pkg/kv/kvserver/raft_transport.go#L637-L639](pkg/kv/kvserver/raft_transport.go#L637-L639)
[pkg/kv/kvserver/store_raft.go#L278-L280](pkg/kv/kvserver/store_raft.go#L278-L280)
[pkg/util/stop/stopper.go#L349-L351](pkg/util/stop/stopper.go#L349-L351)
[pkg/kv/kvserver/store_raft.go#L281-L283](pkg/kv/kvserver/store_raft.go#L281-L283)
[pkg/kv/kvserver/store_snapshot.go#L602-L604](pkg/kv/kvserver/store_snapshot.go#L602-L604)
[pkg/kv/kvserver/store_raft.go#L498-L500](pkg/kv/kvserver/store_raft.go#L498-L500)
[pkg/kv/kvserver/store_raft.go#L434-L436](pkg/kv/kvserver/store_raft.go#L434-L436)
[pkg/kv/kvserver/store_raft.go#L558-L560](pkg/kv/kvserver/store_raft.go#L558-L560)

```
src/runtime/asm_arm64.s in runtime.goexit at line 1223
external/org_golang_google_grpc/server.go in google.golang.org/grpc.(*Server).serveStreams.func1.1 at line 970
external/org_golang_google_grpc/server.go in google.golang.org/grpc.(*Server).handleStream at line 1739
external/org_golang_google_grpc/server.go in google.golang.org/grpc.(*Server).processStreamingRPC at line 1659
external/org_golang_google_grpc/server.go in google.golang.org/grpc.NewServer.chainStreamServerInterceptors.chainStreamInterceptors.func2 at line 1495
pkg/rpc/context.go in pkg/rpc.NewServerEx.func2 at line 141
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunTaskWithErr at line 350
pkg/rpc/context.go in pkg/rpc.NewServerEx.func2.1 at line 142
external/org_golang_google_grpc/server.go in google.golang.org/grpc.getChainStreamHandler.func1 at line 1504
pkg/rpc/auth.go in pkg/rpc.kvAuth.streamInterceptor at line 152
external/org_golang_google_grpc/server.go in google.golang.org/grpc.getChainStreamHandler.func1 at line 1504
pkg/rpc/context.go in pkg/rpc.NewServerEx.func4 at line 181
external/org_golang_google_grpc/server.go in google.golang.org/grpc.getChainStreamHandler.func1 at line 1504
pkg/util/tracing/grpcinterceptor/grpc_interceptor.go in pkg/rpc.NewServerEx.StreamServerInterceptor.func13 at line 159
bazel-out/k8-opt/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go in pkg/kv/kvserver._MultiRaft_RaftSnapshot_Handler at line 267
pkg/kv/kvserver/raft_transport.go in pkg/kv/kvserver.(*RaftTransport).RaftSnapshot at line 638
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).HandleSnapshot at line 279
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunTaskWithErr at line 350
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).HandleSnapshot.func1 at line 282
pkg/kv/kvserver/store_snapshot.go in pkg/kv/kvserver.(*Store).receiveSnapshot at line 603
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).processRaftSnapshotRequest at line 499
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).withReplicaForRequest at line 435
pkg/kv/kvserver/store_raft.go in pkg/kv/kvserver.(*Store).processRaftSnapshotRequest.func1 at line 559
```

### Tags

| Tag | Value |
| --- | --- |
| Command | server |
| Environment | v25.2.3 |
| Go Version | go1.23.7 X:nocoverageredesign |
| Platform | linux arm64 |
| Distribution | CCL |
| Cockroach Release | v25.2.3 |
| Cockroach SHA | adfe5601ff6cb72c0f65090995978ca9ebbdc647 |
| # of CPUs | 2 |
| # of Goroutines | 493 |

Jira issue: CRDB-66019

Contributor guide

Open the contributing guide

Research direction

Start by reading pkg/kv/kvserver/replica_raftstorage.go at applySnapshot and follow the callers in replica_raft.go, store_raft.go, and store_snapshot.go named in the trace. Use the Sentry report to understand the permission-denied failure during Raft snapshot ingestion; done means the crash is reproducible, its cause is established, and snapshot application handles this case safely.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, databases, distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.