cockroachdb / cockroachdb/cockroach

Sentry: replica_command.go:1792: while carrying out changes [{ADD_VOTER n1,s2}]: node 1 already has a replica; only valid actions are a removal or a rebalance(add/remove); got [{ChangeType:ADD_VOTER T...

Open
#171,493 4 comments 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/7537627685/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7537627685/?referrer=webhooks_plugin)

Panic Message:

```
replica_command.go:1792: while carrying out changes [{ADD_VOTER n1,s2}]: node 1 already has a replica; only valid actions are a removal or a rebalance(add/remove); got [{ChangeType:ADD_VOTER Target:n1,s2}]
(1)
Wraps: (2)
| (opaque error wrapper)
| type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
| reportable 0:
|
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).relocateReplicas
| pkg/kv/kvserver/replica_command.go:3688
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).AdminRelocateRange
| pkg/kv/kvserver/replica_command.go:3601
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).executeAdminBatch
| pkg/kv/kvserver/replica_send.go:976
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).SendWithWriteBytes
| pkg/kv/kvserver/replica_send.go:180
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).SendWithWriteBytes
| pkg/kv/kvserver/store_send.go:188
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Stores).SendWithWriteBytes
| pkg/kv/kvserver/stores.go:203
| github.com/cockroachdb/cockroach/pkg/server.(*Node).batchInternal
| pkg/server/node.go:1647
| github.com/cockroachdb/cockroach/pkg/server.(*Node).Batch
| pkg/server/node.go:1840
| github.com/cockroachdb/cockroach/pkg/server.(*Node).batchStreamImpl
| pkg/server/node.go:1895
| github.com/cockroachdb/cockroach/pkg/server.(*Node).BatchStream
| pkg/server/node.go:1866
| github.com/cockroachdb/cockroach/pkg/kv/kvpb._Internal_BatchStream_Handler
| bazel-out/k8-opt/bin/pkg/kv/kvpb/kvpb_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvpb/api.pb.go:10861
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.StreamServerInterceptor.func13
| pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:143
| 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_amd64.s:1700
Wraps: (3) while carrying out changes [{ADD_VOTER n1,s2}]
Wraps: (4) forced error mark
| ×
| github.com/cockroachdb/errors/withstack/*withstack.withStack::
Wraps: (5) assertion failure
Wraps: (6)
| (opaque error wrapper)
| type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
| reportable 0:
|
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.validateOneReplicaPerNode
| pkg/kv/kvserver/replica_command.go:1792
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.validateReplicationChanges
| pkg/kv/kvserver/replica_command.go:1849
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).changeReplicasImpl
| pkg/kv/kvserver/replica_command.go:1230
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).ChangeReplicas
| pkg/kv/kvserver/replica_command.go:1209
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).executeAdminBatch
| pkg/kv/kvserver/replica_send.go:958
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Replica).SendWithWriteBytes
| pkg/kv/kvserver/replica_send.go:180
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Store).SendWithWriteBytes
| pkg/kv/kvserver/store_send.go:188
| github.com/cockroachdb/cockroach/pkg/kv/kvserver.(*Stores).SendWithWriteBytes
| pkg/kv/kvserver/stores.go:203
| github.com/cockroachdb/cockroach/pkg/server.(*Node).batchInternal
| pkg/server/node.go:1647
| github.com/cockroachdb/cockroach/pkg/server.(*Node).Batch
| pkg/server/node.go:1840
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.func1
| pkg/rpc/context.go:726
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.ServerInterceptor.func12
| pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:96
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4
| pkg/rpc/context.go:837
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func3
| pkg/rpc/context.go:172
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4
| pkg/rpc/context.go:837
| github.com/cockroachdb/cockroach/pkg/rpc.kvAuth.unaryInterceptor
| pkg/rpc/auth.go:90
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4
| pkg/rpc/context.go:837
| github.com/cockroachdb/cockroach/pkg/server.newGRPCServer.NewRequestMetricsInterceptor.func4
| pkg/rpc/metrics.go:386
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4
| pkg/rpc/context.go:837
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1.1
| pkg/rpc/context.go:133
| github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
| pkg/util/stop/stopper.go:350
| github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1
| pkg/rpc/context.go:131
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4
| pkg/rpc/context.go:837
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.func2
| pkg/rpc/context.go:736
| github.com/cockroachdb/cockroach/pkg/rpc.NewContext.ClientInterceptor.func8
| pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:236
| github.com/cockroachdb/cockroach/pkg/rpc.getChainUnaryInvoker.func1
| pkg/rpc/context.go:921
| github.com/cockroachdb/cockroach/pkg/rpc.makeInternalClientAdapter.func3
| pkg/rpc/context.go:806
| github.com/cockroachdb/cockroach/pkg/rpc.internalClientAdapter.Batch
| pkg/rpc/context.go:929
| github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*grpcTransport).sendBatch
| pkg/kv/kvclient/kvcoord/transport.go:209
| github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*grpcTransport).SendNext
| pkg/kv/kvclient/kvcoord/transport.go:187
| github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).sendToReplicas
| pkg/kv/kvclient/kvcoord/dist_sender.go:2758
| github.com/cockroachdb/cockroach/pkg/kv/kvclient/kvcoord.(*DistSender).sendPartialBatch
| pkg/kv/kvclient/kvcoord/dist_sender.go:2213
Wraps: (7) node 1 already has a replica; only valid actions are a removal or a rebalance(add/remove); got [{ChangeType:ADD_VOTER Target:n1,s2}]
Error types: (1) *colexecerror.notInternalError (2) *errbase.opaqueWrapper (3) *errutil.withPrefix (4) *markers.withMark (5) *assert.withAssertionFailure (6) *errbase.opaqueWrapper (7) *errutil.leafError
-- report composition:
*errutil.leafError: node 1 already has a replica; only valid actions are a removal or a rebalance(add/remove); got [{ChangeType:ADD_VOTER Target:n1,s2}]
replica_command.go:1792: *withstack.withStack (top exception)
*assert.withAssertionFailure
*markers.withMark
*errutil.withPrefix: while carrying out changes [{ADD_VOTER n1,s2}]
replica_command.go:3688: *withstack.withStack (1)
*colexecerror.notInternalError
(check the extra data payloads)
```

Stacktrace (expand for inline code snippets):

[src/runtime/asm_amd64.s#L1699-L1701](src/runtime/asm_amd64.s#L1699-L1701)
[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#L142-L144](pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L142-L144)
[bazel-out/k8-opt/bin/pkg/kv/kvpb/kvpb_go_proto_/https://github.com/cockroachdb/cockroach/blob/ca60d6346a81d99d640c89c7c1e9282002357319/pkg/kv/kvpb/api.pb.go#L10860-L10862](bazel-out/k8-opt/bin/pkg/kv/kvpb/kvpb_go_proto_/https://github.com/cockroachdb/cockroach/blob/ca60d6346a81d99d640c89c7c1e9282002357319/pkg/kv/kvpb/api.pb.go#L10860-L10862)
[pkg/server/node.go#L1865-L1867](pkg/server/node.go#L1865-L1867)
[pkg/server/node.go#L1894-L1896](pkg/server/node.go#L1894-L1896)
[pkg/server/node.go#L1839-L1841](pkg/server/node.go#L1839-L1841)
[pkg/server/node.go#L1646-L1648](pkg/server/node.go#L1646-L1648)
[pkg/kv/kvserver/stores.go#L202-L204](pkg/kv/kvserver/stores.go#L202-L204)
[pkg/kv/kvserver/store_send.go#L187-L189](pkg/kv/kvserver/store_send.go#L187-L189)
[pkg/kv/kvserver/replica_send.go#L179-L181](pkg/kv/kvserver/replica_send.go#L179-L181)
[pkg/kv/kvserver/replica_send.go#L975-L977](pkg/kv/kvserver/replica_send.go#L975-L977)
[pkg/kv/kvserver/replica_command.go#L3600-L3602](pkg/kv/kvserver/replica_command.go#L3600-L3602)
[pkg/kv/kvserver/replica_command.go#L3687-L3689](pkg/kv/kvserver/replica_command.go#L3687-L3689)
[pkg/kv/kvclient/kvcoord/dist_sender.go#L2212-L2214](pkg/kv/kvclient/kvcoord/dist_sender.go#L2212-L2214)
[pkg/kv/kvclient/kvcoord/dist_sender.go#L2757-L2759](pkg/kv/kvclient/kvcoord/dist_sender.go#L2757-L2759)
[pkg/kv/kvclient/kvcoord/transport.go#L186-L188](pkg/kv/kvclient/kvcoord/transport.go#L186-L188)
[pkg/kv/kvclient/kvcoord/transport.go#L208-L210](pkg/kv/kvclient/kvcoord/transport.go#L208-L210)
[pkg/rpc/context.go#L928-L930](pkg/rpc/context.go#L928-L930)
[pkg/rpc/context.go#L805-L807](pkg/rpc/context.go#L805-L807)
[pkg/rpc/context.go#L920-L922](pkg/rpc/context.go#L920-L922)
[pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L235-L237](pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L235-L237)
[pkg/rpc/context.go#L735-L737](pkg/rpc/context.go#L735-L737)
[pkg/rpc/context.go#L836-L838](pkg/rpc/context.go#L836-L838)
[pkg/rpc/context.go#L130-L132](pkg/rpc/context.go#L130-L132)
[pkg/util/stop/stopper.go#L349-L351](pkg/util/stop/stopper.go#L349-L351)
[pkg/rpc/context.go#L132-L134](pkg/rpc/context.go#L132-L134)
[pkg/rpc/context.go#L836-L838](pkg/rpc/context.go#L836-L838)
[pkg/rpc/metrics.go#L385-L387](pkg/rpc/metrics.go#L385-L387)
[pkg/rpc/context.go#L836-L838](pkg/rpc/context.go#L836-L838)
[pkg/rpc/auth.go#L89-L91](pkg/rpc/auth.go#L89-L91)
[pkg/rpc/context.go#L836-L838](pkg/rpc/context.go#L836-L838)
[pkg/rpc/context.go#L171-L173](pkg/rpc/context.go#L171-L173)
[pkg/rpc/context.go#L836-L838](pkg/rpc/context.go#L836-L838)
[pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L95-L97](pkg/util/tracing/grpcinterceptor/grpc_interceptor.go#L95-L97)
[pkg/rpc/context.go#L725-L727](pkg/rpc/context.go#L725-L727)
[pkg/server/node.go#L1839-L1841](pkg/server/node.go#L1839-L1841)
[pkg/server/node.go#L1646-L1648](pkg/server/node.go#L1646-L1648)
[pkg/kv/kvserver/stores.go#L202-L204](pkg/kv/kvserver/stores.go#L202-L204)
[pkg/kv/kvserver/store_send.go#L187-L189](pkg/kv/kvserver/store_send.go#L187-L189)
[pkg/kv/kvserver/replica_send.go#L179-L181](pkg/kv/kvserver/replica_send.go#L179-L181)
[pkg/kv/kvserver/replica_send.go#L957-L959](pkg/kv/kvserver/replica_send.go#L957-L959)
[pkg/kv/kvserver/replica_command.go#L1208-L1210](pkg/kv/kvserver/replica_command.go#L1208-L1210)
[pkg/kv/kvserver/replica_command.go#L1229-L1231](pkg/kv/kvserver/replica_command.go#L1229-L1231)
[pkg/kv/kvserver/replica_command.go#L1848-L1850](pkg/kv/kvserver/replica_command.go#L1848-L1850)
[pkg/kv/kvserver/replica_command.go#L1791-L1793](pkg/kv/kvserver/replica_command.go#L1791-L1793)

```
src/runtime/asm_amd64.s in runtime.goexit at line 1700
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 143
bazel-out/k8-opt/bin/pkg/kv/kvpb/kvpb_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvpb/api.pb.go in pkg/kv/kvpb._Internal_BatchStream_Handler at line 10861
pkg/server/node.go in pkg/server.(*Node).BatchStream at line 1866
pkg/server/node.go in pkg/server.(*Node).batchStreamImpl at line 1895
pkg/server/node.go in pkg/server.(*Node).Batch at line 1840
pkg/server/node.go in pkg/server.(*Node).batchInternal at line 1647
pkg/kv/kvserver/stores.go in pkg/kv/kvserver.(*Stores).SendWithWriteBytes at line 203
pkg/kv/kvserver/store_send.go in pkg/kv/kvserver.(*Store).SendWithWriteBytes at line 188
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).SendWithWriteBytes at line 180
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).executeAdminBatch at line 976
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.(*Replica).AdminRelocateRange at line 3601
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.(*Replica).relocateReplicas at line 3688
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).sendPartialBatch at line 2213
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).sendToReplicas at line 2758
pkg/kv/kvclient/kvcoord/transport.go in pkg/kv/kvclient/kvcoord.(*grpcTransport).SendNext at line 187
pkg/kv/kvclient/kvcoord/transport.go in pkg/kv/kvclient/kvcoord.(*grpcTransport).sendBatch at line 209
pkg/rpc/context.go in pkg/rpc.internalClientAdapter.Batch at line 929
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.func3 at line 806
pkg/rpc/context.go in pkg/rpc.getChainUnaryInvoker.func1 at line 921
pkg/util/tracing/grpcinterceptor/grpc_interceptor.go in pkg/rpc.NewContext.ClientInterceptor.func8 at line 236
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.func2 at line 736
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4 at line 837
pkg/rpc/context.go in pkg/rpc.NewServerEx.func1 at line 131
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunTaskWithErr at line 350
pkg/rpc/context.go in pkg/rpc.NewServerEx.func1.1 at line 133
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4 at line 837
pkg/rpc/metrics.go in pkg/server.newGRPCServer.NewRequestMetricsInterceptor.func4 at line 386
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4 at line 837
pkg/rpc/auth.go in pkg/rpc.kvAuth.unaryInterceptor at line 90
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4 at line 837
pkg/rpc/context.go in pkg/rpc.NewServerEx.func3 at line 172
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.chainUnaryServerInterceptors.bindUnaryServerInterceptorToHandler.func4 at line 837
pkg/util/tracing/grpcinterceptor/grpc_interceptor.go in pkg/rpc.NewServerEx.ServerInterceptor.func12 at line 96
pkg/rpc/context.go in pkg/rpc.makeInternalClientAdapter.func1 at line 726
pkg/server/node.go in pkg/server.(*Node).Batch at line 1840
pkg/server/node.go in pkg/server.(*Node).batchInternal at line 1647
pkg/kv/kvserver/stores.go in pkg/kv/kvserver.(*Stores).SendWithWriteBytes at line 203
pkg/kv/kvserver/store_send.go in pkg/kv/kvserver.(*Store).SendWithWriteBytes at line 188
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).SendWithWriteBytes at line 180
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).executeAdminBatch at line 958
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.(*Replica).ChangeReplicas at line 1209
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.(*Replica).changeReplicasImpl at line 1230
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.validateReplicationChanges at line 1849
pkg/kv/kvserver/replica_command.go in pkg/kv/kvserver.validateOneReplicaPerNode at line 1792
```

### Tags

| Tag | Value |
| --- | --- |
| Command | server |
| Environment | v25.2.12 |
| Go Version | go1.23.12 X:nocoverageredesign |
| Platform | linux amd64 |
| Distribution | CCL |
| Cockroach Release | v25.2.12 |
| Cockroach SHA | ca60d6346a81d99d640c89c7c1e9282002357319 |
| # of CPUs | 40 |
| # of Goroutines | 932 |

Jira issue: CRDB-64610

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.