-
Notifications
You must be signed in to change notification settings - Fork 4.1k
sql: v22.1.5: nil pointer when formatting DBitArray #85363
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/3465980936/?referrer=webhooks_plugin
Panic message:
conn_executor.go:754: 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:754
| [...repeated from below...]
Wraps: (2) while executing: INSERT INTO (, _) VALUES ($1, $2), (more900)
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:754
| runtime.gopanic
| GOROOT/src/runtime/panic.go:1038
| runtime.panicmem
| GOROOT/src/runtime/panic.go:221
| runtime.sigpanic
| GOROOT/src/runtime/signal_unix.go:735
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*DBitArray).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/datum.go:658
| github.com/cockroachdb/cockroach/pkg/sql.formatWithPlaceholders.func1
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:817
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*Placeholder).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:772
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/hide_constants.go:46
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).FormatNode
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/format.go:449
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*Exprs).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:893
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/hide_constants.go:46
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).FormatNode
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/format.go:449
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*ValuesClause).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/values.go:34
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/hide_constants.go:46
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).FormatNode
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/format.go:449
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*Select).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/select.go:56
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/hide_constants.go:46
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).FormatNode
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/format.go:449
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*Insert).Format
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/insert.go:51
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/hide_constants.go:46
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FmtCtx).FormatNode
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree/format.go:449
| github.com/cockroachdb/cockroach/pkg/sql.formatWithPlaceholders
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:824
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:322
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:143
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execPortal
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:231
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd.func2
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1962
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1964
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1810
| github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:756
| github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommandsAsync.func1
| github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:727
| runtime.goexit
| GOROOT/src/runtime/asm_amd64.s:1581
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:754: *withstack.withStack (top exception)
*safedetails.withSafeDetails: while executing: INSERT INTO (, _) VALUES ($1, $2), (more900)
conn_executor.go:754: *withstack.withStack (1)
(check the extra data payloads)
Stacktrace (expand for inline code snippets):
cockroach/pkg/sql/conn_executor.go
Lines 753 to 755 in a30a663
| r := recover() | |
| h.ex.closeWrapper(ctx, r) | |
| }() |
GOROOT/src/runtime/panic.go#L1037-L1039 in runtime.gopanic
GOROOT/src/runtime/panic.go#L220-L222 in runtime.panicmem
GOROOT/src/runtime/signal_unix.go#L734-L736 in runtime.sigpanic
cockroach/pkg/sql/sem/tree/datum.go
Lines 657 to 659 in a30a663
| } | |
| d.BitArray.Format(&ctx.Buffer) | |
| if withQuotes { |
cockroach/pkg/sql/conn_executor_exec.go
Lines 816 to 818 in a30a663
| } | |
| d.Format(ctx) | |
| }), |
cockroach/pkg/sql/sem/tree/expr.go
Lines 771 to 773 in a30a663
| if ctx.placeholderFormat != nil { | |
| ctx.placeholderFormat(ctx, node) | |
| return |
cockroach/pkg/sql/sem/tree/hide_constants.go
Lines 45 to 47 in a30a663
| } | |
| n.Format(ctx) | |
| } |
cockroach/pkg/sql/sem/tree/format.go
Lines 448 to 450 in a30a663
| } else { | |
| ctx.formatNodeOrHideConstants(n) | |
| } |
cockroach/pkg/sql/sem/tree/expr.go
Lines 892 to 894 in a30a663
| } | |
| ctx.FormatNode(n) | |
| } |
cockroach/pkg/sql/sem/tree/hide_constants.go
Lines 45 to 47 in a30a663
| } | |
| n.Format(ctx) | |
| } |
cockroach/pkg/sql/sem/tree/format.go
Lines 448 to 450 in a30a663
| } else { | |
| ctx.formatNodeOrHideConstants(n) | |
| } |
cockroach/pkg/sql/sem/tree/values.go
Lines 33 to 35 in a30a663
| ctx.WriteByte('(') | |
| ctx.FormatNode(&node.Rows[i]) | |
| ctx.WriteByte(')') |
cockroach/pkg/sql/sem/tree/hide_constants.go
Lines 45 to 47 in a30a663
| } | |
| n.Format(ctx) | |
| } |
cockroach/pkg/sql/sem/tree/format.go
Lines 448 to 450 in a30a663
| } else { | |
| ctx.formatNodeOrHideConstants(n) | |
| } |
cockroach/pkg/sql/sem/tree/select.go
Lines 55 to 57 in a30a663
| ctx.FormatNode(node.With) | |
| ctx.FormatNode(node.Select) | |
| if len(node.OrderBy) > 0 { |
cockroach/pkg/sql/sem/tree/hide_constants.go
Lines 45 to 47 in a30a663
| } | |
| n.Format(ctx) | |
| } |
cockroach/pkg/sql/sem/tree/format.go
Lines 448 to 450 in a30a663
| } else { | |
| ctx.formatNodeOrHideConstants(n) | |
| } |
cockroach/pkg/sql/sem/tree/insert.go
Lines 50 to 52 in a30a663
| ctx.WriteByte(' ') | |
| ctx.FormatNode(node.Rows) | |
| } |
cockroach/pkg/sql/sem/tree/hide_constants.go
Lines 45 to 47 in a30a663
| } | |
| n.Format(ctx) | |
| } |
cockroach/pkg/sql/sem/tree/format.go
Lines 448 to 450 in a30a663
| } else { | |
| ctx.formatNodeOrHideConstants(n) | |
| } |
cockroach/pkg/sql/conn_executor_exec.go
Lines 823 to 825 in a30a663
| fmtCtx.FormatNode(ast) | |
cockroach/pkg/sql/conn_executor_exec.go
Lines 321 to 323 in a30a663
| ex.addActiveQuery(ast, formatWithPlaceholders(ast, ex.planner.EvalContext()), queryID, ex.state.cancel) | |
| if ex.executorType != executorTypeInternal { |
cockroach/pkg/sql/conn_executor_exec.go
Lines 142 to 144 in a30a663
| } else { | |
| ev, payload, err = ex.execStmtInOpenState(ctx, parserStmt, prepared, pinfo, res, canAutoCommit) | |
| } |
cockroach/pkg/sql/conn_executor_exec.go
Lines 230 to 232 in a30a663
| } | |
| ev, payload, err = ex.execStmt(ctx, portal.Stmt.Statement, portal.Stmt, pinfo, stmtRes, canAutoCommit) | |
| // Portal suspension is supported via a "side" state machine |
cockroach/pkg/sql/conn_executor.go
Lines 1961 to 1963 in a30a663
| canAutoCommit := ex.implicitTxn() && tcmd.FollowedBySync | |
| ev, payload, err = ex.execPortal(ctx, portal, portalName, stmtRes, pinfo, canAutoCommit) | |
| return err |
cockroach/pkg/sql/conn_executor.go
Lines 1963 to 1965 in a30a663
| return err | |
| }() | |
| // Note: we write to ex.statsCollector.phaseTimes, instead of ex.phaseTimes, |
cockroach/pkg/sql/conn_executor.go
Lines 1809 to 1811 in a30a663
| var err error | |
| if err = ex.execCmd(); err != nil { | |
| if errors.IsAny(err, io.EOF, errDrainingComplete) { |
cockroach/pkg/sql/conn_executor.go
Lines 755 to 757 in a30a663
| }() | |
| return h.ex.run(ctx, s.pool, reserved, cancel) | |
| } |
cockroach/pkg/sql/pgwire/conn.go
Lines 726 to 728 in a30a663
| reservedOwned = false // We're about to pass ownership away. | |
| retErr = sqlServer.ServeConn(ctx, connHandler, reserved, cancelConn) | |
| }() |
GOROOT/src/runtime/asm_amd64.s#L1580-L1582 in runtime.goexit
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn.func1 at line 754
GOROOT/src/runtime/panic.go in runtime.gopanic at line 1038
GOROOT/src/runtime/panic.go in runtime.panicmem at line 221
GOROOT/src/runtime/signal_unix.go in runtime.sigpanic at line 735
pkg/sql/sem/tree/datum.go in pkg/sql/sem/tree.(*DBitArray).Format at line 658
pkg/sql/conn_executor_exec.go in pkg/sql.formatWithPlaceholders.func1 at line 817
pkg/sql/sem/tree/expr.go in pkg/sql/sem/tree.(*Placeholder).Format at line 772
pkg/sql/sem/tree/hide_constants.go in pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants at line 46
pkg/sql/sem/tree/format.go in pkg/sql/sem/tree.(*FmtCtx).FormatNode at line 449
pkg/sql/sem/tree/expr.go in pkg/sql/sem/tree.(*Exprs).Format at line 893
pkg/sql/sem/tree/hide_constants.go in pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants at line 46
pkg/sql/sem/tree/format.go in pkg/sql/sem/tree.(*FmtCtx).FormatNode at line 449
pkg/sql/sem/tree/values.go in pkg/sql/sem/tree.(*ValuesClause).Format at line 34
pkg/sql/sem/tree/hide_constants.go in pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants at line 46
pkg/sql/sem/tree/format.go in pkg/sql/sem/tree.(*FmtCtx).FormatNode at line 449
pkg/sql/sem/tree/select.go in pkg/sql/sem/tree.(*Select).Format at line 56
pkg/sql/sem/tree/hide_constants.go in pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants at line 46
pkg/sql/sem/tree/format.go in pkg/sql/sem/tree.(*FmtCtx).FormatNode at line 449
pkg/sql/sem/tree/insert.go in pkg/sql/sem/tree.(*Insert).Format at line 51
pkg/sql/sem/tree/hide_constants.go in pkg/sql/sem/tree.(*FmtCtx).formatNodeOrHideConstants at line 46
pkg/sql/sem/tree/format.go in pkg/sql/sem/tree.(*FmtCtx).FormatNode at line 449
pkg/sql/conn_executor_exec.go in pkg/sql.formatWithPlaceholders at line 824
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmtInOpenState at line 322
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmt at line 143
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execPortal at line 231
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd.func2 at line 1962
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd at line 1964
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).run at line 1810
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn at line 756
pkg/sql/pgwire/conn.go in pkg/sql/pgwire.(*conn).processCommandsAsync.func1 at line 727
GOROOT/src/runtime/asm_amd64.s in runtime.goexit at line 1581
| Tag | Value |
|---|---|
| Cockroach Release | v22.1.5 |
| Cockroach SHA: | a30a663 |
| Platform | linux amd64 |
| Distribution | CCL |
| Environment | v22.1.5 |
| Command | start-single-node |
| Go Version | `` |
| # of CPUs | |
| # of Goroutines |
Jira issue: CRDB-18205