Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sentry: conn_executor.go:967: runtime error: invalid memory address or nil pointer dereference (1) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeCo... #132987

Open
cockroach-sentry opened this issue Oct 19, 2024 · 0 comments
Labels
branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. O-sentry Originated from an in-the-wild panic report.

Comments

@cockroach-sentry
Copy link
Collaborator

cockroach-sentry commented Oct 19, 2024

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/6004557000/?referrer=webhooks_plugin

Panic Message:

conn_executor.go:967: runtime error: invalid memory address or nil pointer dereference
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:967
  | [...repeated from below...]
Wraps: (2) while executing: COMMIT TRANSACTION
Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:967
  | runtime.gopanic
  | 	GOROOT/src/runtime/panic.go:914
  | runtime.panicmem
  | 	GOROOT/src/runtime/panic.go:261
  | runtime.sigpanic
  | 	GOROOT/src/runtime/signal_unix.go:861
  | github.com/cockroachdb/cockroach/pkg/util/tracing.SpanFromContext
  | 	github.com/cockroachdb/cockroach/pkg/util/tracing/context.go:25
  | github.com/cockroachdb/cockroach/pkg/util/log.getSpanOrEventLog
  | 	github.com/cockroachdb/cockroach/pkg/util/log/trace.go:91
  | github.com/cockroachdb/cockroach/pkg/util/log.vEventf
  | 	github.com/cockroachdb/cockroach/pkg/util/log/trace.go:212
  | github.com/cockroachdb/cockroach/pkg/util/log.VEventf
  | 	github.com/cockroachdb/cockroach/pkg/util/log/trace.go:238
  | github.com/cockroachdb/cockroach/pkg/sql/catalog/descs.(*leasedDescriptors).releaseAll
  | 	github.com/cockroachdb/cockroach/pkg/sql/catalog/descs/leased_descriptors.go:257
  | github.com/cockroachdb/cockroach/pkg/sql/catalog/descs.(*Collection).ReleaseLeases
  | 	github.com/cockroachdb/cockroach/pkg/sql/catalog/descs/collection.go:192
  | github.com/cockroachdb/cockroach/pkg/sql/catalog/descs.(*Collection).ReleaseAll
  | 	github.com/cockroachdb/cockroach/pkg/sql/catalog/descs/collection.go:200
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).resetExtraTxnState
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2022
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).txnStateTransitionsApplyWrapper
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:3964
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2511
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2185
  | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:969
  | github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommands
  | 	github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:250
  | github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveImpl.func3
  | 	github.com/cockroachdb/cockroach/pkg/sql/pgwire/server.go:1104
  | runtime.goexit
  | 	src/runtime/asm_amd64.s:1650
Wraps: (4) runtime error: invalid memory address or nil pointer dereference
Error types: (1) *withstack.withStack (2) *safedetails.withSafeDetails (3) *withstack.withStack (4) runtime.errorString
-- report composition:
runtime.errorString
conn_executor.go:967: *withstack.withStack (top exception)
*safedetails.withSafeDetails: while executing: COMMIT TRANSACTION
conn_executor.go:967: *withstack.withStack (1)
(check the extra data payloads)
Stacktrace (expand for inline code snippets):

src/runtime/asm_amd64.s#L1649-L1651

defer procWg.Done()
c.processCommands(
ctx,

reservedOwned = false // We're about to pass ownership away.
retErr = sqlServer.ServeConn(
ctx,

}(ctx, h)
return h.ex.run(ctx, s.pool, reserved, cancel)
}

var err error
if err = ex.execCmd(); err != nil {
// Both of these errors are normal ways for the connExecutor to exit.

}
advInfo, err = ex.txnStateTransitionsApplyWrapper(ev, payload, res, pos)
if err != nil {

case txnRollback:
ex.resetExtraTxnState(ex.Ctx(), advInfo.txnEvent, payloadErr)
// Since we're doing a complete rollback, there's no need to keep the

} else {
ex.extraTxnState.descCollection.ReleaseAll(ctx)
ex.extraTxnState.jobs.reset()

func (tc *Collection) ReleaseAll(ctx context.Context) {
tc.ReleaseLeases(ctx)
tc.ResetUncommitted(ctx)

func (tc *Collection) ReleaseLeases(ctx context.Context) {
tc.leased.releaseAll(ctx)
// Clear the associated sqlliveness.session

func (ld *leasedDescriptors) releaseAll(ctx context.Context) {
log.VEventf(ctx, 2, "releasing %d descriptors", ld.numDescriptors())
_ = ld.cache.IterateByID(func(descriptor catalog.NameEntry) error {

func VEventf(ctx context.Context, level Level, format string, args ...interface{}) {
vEventf(ctx, false /* isErr */, 1, level, channel.DEV, format, args...)
}

} else {
sp, el, ok := getSpanOrEventLog(ctx)
if !ok {

func getSpanOrEventLog(ctx context.Context) (*tracing.Span, *ctxEventLog, bool) {
if sp := tracing.SpanFromContext(ctx); sp != nil {
if !sp.IsVerbose() && !sp.Tracer().HasExternalSink() {

func SpanFromContext(ctx context.Context) *Span {
val := ctx.Value(activeSpanKey{})
if sp, ok := val.(*Span); ok {

GOROOT/src/runtime/signal_unix.go#L860-L862
GOROOT/src/runtime/panic.go#L260-L262
GOROOT/src/runtime/panic.go#L913-L915
r := recover()
h.ex.closeWrapper(ctx, r)
}(ctx, h)

src/runtime/asm_amd64.s in runtime.goexit at line 1650
pkg/sql/pgwire/server.go in pkg/sql/pgwire.(*Server).serveImpl.func3 at line 1104
pkg/sql/pgwire/conn.go in pkg/sql/pgwire.(*conn).processCommands at line 250
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn at line 969
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).run at line 2185
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd at line 2511
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).txnStateTransitionsApplyWrapper at line 3964
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).resetExtraTxnState at line 2022
pkg/sql/catalog/descs/collection.go in pkg/sql/catalog/descs.(*Collection).ReleaseAll at line 200
pkg/sql/catalog/descs/collection.go in pkg/sql/catalog/descs.(*Collection).ReleaseLeases at line 192
pkg/sql/catalog/descs/leased_descriptors.go in pkg/sql/catalog/descs.(*leasedDescriptors).releaseAll at line 257
pkg/util/log/trace.go in pkg/util/log.VEventf at line 238
pkg/util/log/trace.go in pkg/util/log.vEventf at line 212
pkg/util/log/trace.go in pkg/util/log.getSpanOrEventLog at line 91
pkg/util/tracing/context.go in pkg/util/tracing.SpanFromContext at line 25
GOROOT/src/runtime/signal_unix.go in runtime.sigpanic at line 861
GOROOT/src/runtime/panic.go in runtime.panicmem at line 261
GOROOT/src/runtime/panic.go in runtime.gopanic at line 914
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn.func1 at line 967

Tags

Tag Value
Command demo
Environment v23.2.12
Go Version go1.21.12 X:nocoverageredesign
Platform linux amd64
Distribution CCL
Cockroach Release v23.2.12
Cockroach SHA c3ddfa7
# of CPUs 16
# of Goroutines 596

Jira issue: CRDB-43385

@cockroach-sentry cockroach-sentry added branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. O-sentry Originated from an in-the-wild panic report. labels Oct 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. O-sentry Originated from an in-the-wild panic report.
Projects
None yet
Development

No branches or pull requests

1 participant