-
Notifications
You must be signed in to change notification settings - Fork 4.1k
roachpb: v21.2.6: IsCompleteTransaction panicked from supposedly unreachable line #79188
Description
This issue was autofiled by Sentry. It represents a crash or reported error on a live cluster with telemetry enabled.
Sentry link: https://sentry.io/organizations/cockroach-labs/issues/3146653297/?referrer=webhooks_plugin
Panic message:
conn_executor.go:666: panic: ×
--
*errutil.leafError: panic: × (1)
conn_executor.go:666: *withstack.withStack (top exception)
*safedetails.withSafeDetails: while executing: COMMIT TRANSACTION (2)
conn_executor.go:666: *withstack.withStack (3)
(check the extra data payloads)
Stacktrace (expand for inline code snippets):
cockroach/pkg/sql/conn_executor.go
Lines 665 to 667 in c7cfac5
| r := recover() | |
| h.ex.closeWrapper(ctx, r) | |
| }() |
/usr/local/go/src/runtime/panic.go#L964-L966 in runtime.gopanic
cockroach/pkg/util/stop/stopper.go
Lines 230 to 232 in c7cfac5
| } | |
| panic(r) | |
| } |
/usr/local/go/src/runtime/panic.go#L964-L966 in runtime.gopanic
cockroach/pkg/kv/kvserver/store_send.go
Lines 94 to 96 in c7cfac5
| // again due to undefined state. | |
| panic(r) | |
| } |
/usr/local/go/src/runtime/panic.go#L970-L972 in runtime.gopanic
cockroach/pkg/roachpb/batch.go
Lines 318 to 320 in c7cfac5
| } | |
| panic("unreachable") | |
| } |
cockroach/pkg/kv/kvserver/replica_write.go
Lines 791 to 793 in c7cfac5
| } | |
| if !ba.IsCompleteTransaction() { | |
| return false |
cockroach/pkg/kv/kvserver/replica_write.go
Lines 389 to 391 in c7cfac5
| ) bool { | |
| if !isOnePhaseCommit(ba) { | |
| return false |
cockroach/pkg/kv/kvserver/replica_write.go
Lines 444 to 446 in c7cfac5
| // indications that the batch's txn will require retry, execute as normal. | |
| if r.canAttempt1PCEvaluation(ctx, ba, latchSpans) { | |
| res := r.evaluate1PC(ctx, idKey, ba, latchSpans, lockSpans) |
cockroach/pkg/kv/kvserver/replica_proposal.go
Lines 782 to 784 in c7cfac5
| // in the call stack as well. | |
| batch, ms, br, res, pErr := r.evaluateWriteBatch(ctx, idKey, ba, lul, latchSpans, lockSpans) | |
cockroach/pkg/kv/kvserver/replica_proposal.go
Lines 912 to 914 in c7cfac5
| ) (*ProposalData, *roachpb.Error) { | |
| res, needConsensus, pErr := r.evaluateProposal(ctx, idKey, ba, lul, latchSpans, lockSpans) | |
cockroach/pkg/kv/kvserver/replica_raft.go
Lines 109 to 111 in c7cfac5
| idKey := makeIDKey() | |
| proposal, pErr := r.requestToProposal(ctx, idKey, ba, st, lul, g.LatchSpans(), g.LockSpans()) | |
| log.Event(proposal.ctx, "evaluated request") |
cockroach/pkg/kv/kvserver/replica_write.go
Lines 155 to 157 in c7cfac5
| // evalAndPropose. | |
| ch, abandon, _, pErr := r.evalAndPropose(ctx, ba, g, st, localUncertaintyLimit, tok.Move(ctx)) | |
| if pErr != nil { |
cockroach/pkg/kv/kvserver/replica_send.go
Lines 376 to 378 in c7cfac5
| br, g, pErr = fn(r, ctx, ba, g) | |
| if pErr == nil { |
cockroach/pkg/kv/kvserver/replica_send.go
Lines 106 to 108 in c7cfac5
| fn := (*Replica).executeWriteBatch | |
| br, pErr = r.executeBatchWithConcurrencyRetries(ctx, ba, fn) | |
| } else if ba.IsAdmin() { |
cockroach/pkg/kv/kvserver/replica_send.go
Lines 42 to 44 in c7cfac5
| ) (*roachpb.BatchResponse, *roachpb.Error) { | |
| return r.sendWithRangeID(ctx, r.RangeID, &ba) | |
| } |
cockroach/pkg/kv/kvserver/store_send.go
Lines 189 to 191 in c7cfac5
| br, pErr = repl.Send(ctx, ba) | |
| if pErr == nil { |
cockroach/pkg/kv/kvserver/stores.go
Lines 190 to 192 in c7cfac5
| br, pErr := store.Send(ctx, ba) | |
| if br != nil && br.Error != nil { |
Lines 911 to 913 in c7cfac5
| var pErr *roachpb.Error | |
| br, pErr = n.stores.Send(ctx, *args) | |
| if pErr != nil { |
cockroach/pkg/util/stop/stopper.go
Lines 323 to 325 in c7cfac5
| return f(ctx) | |
| } |
Lines 899 to 901 in c7cfac5
| var br *roachpb.BatchResponse | |
| if err := n.stopper.RunTaskWithErr(ctx, "node.Node: batch", func(ctx context.Context) error { | |
| var finishSpan func(*roachpb.BatchResponse) |
Lines 1014 to 1016 in c7cfac5
| } | |
| br, err := n.batchInternal(ctx, tenantID, args) | |
| if callAdmittedWorkDoneOnKVAdmissionQ { |
Lines 503 to 505 in c7cfac5
| ba.AdmissionHeader.SourceLocation = roachpb.AdmissionHeader_LOCAL | |
| return a.server.Batch(ctx, ba) | |
| } |
cockroach/pkg/kv/kvclient/kvcoord/transport.go
Lines 202 to 204 in c7cfac5
| } | |
| reply, err := iface.Batch(ctx, &ba) | |
| // If we queried a remote node, perform extra validation and |
cockroach/pkg/kv/kvclient/kvcoord/transport.go
Lines 184 to 186 in c7cfac5
| ba.Replica = r | |
| return gt.sendBatch(ctx, r.NodeID, iface, ba) | |
| } |
cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go
Lines 1989 to 1991 in c7cfac5
| } | |
| br, err = transport.SendNext(ctx, ba) | |
| ds.maybeIncrementErrCounters(br, err) |
cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go
Lines 1537 to 1539 in c7cfac5
| prevTok = routingTok | |
| reply, err = ds.sendToReplicas(ctx, ba, routingTok, withCommit) | |
cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go
Lines 1155 to 1157 in c7cfac5
| if !ri.NeedAnother(rs) { | |
| resp := ds.sendPartialBatch( | |
| ctx, ba, rs, ri.Token(), withCommit, batchIdx, false, /* needsTruncate */ |
cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go
Lines 966 to 968 in c7cfac5
| } | |
| br, pErr = ds.divideAndSendBatchToRanges(ctx, ba, rs, true /* withCommit */, batchIdx) | |
cockroach/pkg/kv/kvclient/kvcoord/dist_sender.go
Lines 787 to 789 in c7cfac5
| if withParallelCommit { | |
| rpl, pErr = ds.divideAndSendParallelCommit(ctx, ba, rs, 0 /* batchIdx */) | |
| } else { |
cockroach/pkg/kv/kvclient/kvcoord/txn_lock_gatekeeper.go
Lines 81 to 83 in c7cfac5
| defer gs.mu.Lock() | |
| return gs.wrapped.Send(ctx, ba) | |
| } |
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn.func1 at line 666
/usr/local/go/src/runtime/panic.go in runtime.gopanic at line 965
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).Recover at line 231
/usr/local/go/src/runtime/panic.go in runtime.gopanic at line 965
pkg/kv/kvserver/store_send.go in pkg/kv/kvserver.(*Store).Send.func1 at line 95
/usr/local/go/src/runtime/panic.go in runtime.gopanic at line 971
pkg/roachpb/batch.go in pkg/roachpb.(*BatchRequest).IsCompleteTransaction at line 319
pkg/kv/kvserver/replica_write.go in pkg/kv/kvserver.isOnePhaseCommit at line 792
pkg/kv/kvserver/replica_write.go in pkg/kv/kvserver.(*Replica).canAttempt1PCEvaluation at line 390
pkg/kv/kvserver/replica_write.go in pkg/kv/kvserver.(*Replica).evaluateWriteBatch at line 445
pkg/kv/kvserver/replica_proposal.go in pkg/kv/kvserver.(*Replica).evaluateProposal at line 783
pkg/kv/kvserver/replica_proposal.go in pkg/kv/kvserver.(*Replica).requestToProposal at line 913
pkg/kv/kvserver/replica_raft.go in pkg/kv/kvserver.(*Replica).evalAndPropose at line 110
pkg/kv/kvserver/replica_write.go in pkg/kv/kvserver.(*Replica).executeWriteBatch at line 156
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).executeBatchWithConcurrencyRetries at line 377
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).sendWithRangeID at line 107
pkg/kv/kvserver/replica_send.go in pkg/kv/kvserver.(*Replica).Send at line 43
pkg/kv/kvserver/store_send.go in pkg/kv/kvserver.(*Store).Send at line 190
pkg/kv/kvserver/stores.go in pkg/kv/kvserver.(*Stores).Send at line 191
pkg/server/node.go in pkg/server.(*Node).batchInternal.func1 at line 912
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunTaskWithErr at line 324
pkg/server/node.go in pkg/server.(*Node).batchInternal at line 900
pkg/server/node.go in pkg/server.(*Node).Batch at line 1015
pkg/rpc/context.go in pkg/rpc.internalClientAdapter.Batch at line 504
pkg/kv/kvclient/kvcoord/transport.go in pkg/kv/kvclient/kvcoord.(*grpcTransport).sendBatch at line 203
pkg/kv/kvclient/kvcoord/transport.go in pkg/kv/kvclient/kvcoord.(*grpcTransport).SendNext at line 185
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).sendToReplicas at line 1990
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).sendPartialBatch at line 1538
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).divideAndSendBatchToRanges at line 1156
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).divideAndSendParallelCommit at line 967
pkg/kv/kvclient/kvcoord/dist_sender.go in pkg/kv/kvclient/kvcoord.(*DistSender).Send at line 788
pkg/kv/kvclient/kvcoord/txn_lock_gatekeeper.go in pkg/kv/kvclient/kvcoord.(*txnLockGatekeeper).SendLocked at line 82
| Tag | Value |
|---|---|
| Cockroach Release | v21.2.6 |
| Cockroach SHA: | c7cfac5 |
| Platform | linux amd64 |
| Distribution | CCL |
| Environment | v21.2.6 |
| Command | server |
| Go Version | `` |
| # of CPUs | |
| # of Goroutines |
Jira issue: CRDB-14627