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: catch.go:29: runtime error: invalid memory address or nil pointer dereference (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/util/erro... #99492

Closed
cockroach-teamcity opened this issue Mar 24, 2023 · 1 comment
Labels
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-teamcity
Copy link
Member

cockroach-teamcity commented Mar 24, 2023

This issue was autofiled by Sentry. It represents a crash or reported error on a live cluster with telemetry enabled.

Sentry link: https://cockroach-labs.sentry.io/issues/4033663481/?referrer=webhooks_plugin

Panic message:

catch.go:29: runtime error: invalid memory address or nil pointer dereference
(1) assertion failure
Wraps: (2) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/util/errorutil.ShouldCatch
| github.com/cockroachdb/cockroach/pkg/util/errorutil/catch.go:29
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build.func1
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:192
| runtime.gopanic
| GOROOT/src/runtime/panic.go:884
| runtime.panicmem
| GOROOT/src/runtime/panic.go:260
| runtime.sigpanic
| GOROOT/src/runtime/signal_unix.go:835
| github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*logicalPropsBuilder).buildProjectionsItemProps
| github.com/cockroachdb/cockroach/pkg/sql/opt/memo/logical_props_builder.go:1576
| github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*ProjectionsItem).PopulateProps
| github.com/cockroachdb/cockroach/bazel-out/k8-opt/bin/pkg/sql/opt/memo/expr.og.go:9028
| github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructProjectionsItem
| github.com/cockroachdb/cockroach/bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go:12359
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildScan.func1
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:659
| github.com/cockroachdb/cockroach/pkg/sql/opt.ColSet.ForEach.func1
| github.com/cockroachdb/cockroach/pkg/sql/opt/colset.go:83
| github.com/cockroachdb/cockroach/pkg/util.FastIntSet.ForEach
| github.com/cockroachdb/cockroach/pkg/util/pkg/util/fast_int_set.go:216
| github.com/cockroachdb/cockroach/pkg/sql/opt.ColSet.ForEach
| github.com/cockroachdb/cockroach/pkg/sql/opt/colset.go:83
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildScan
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:658
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildDataSource
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:121
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildDataSource
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:66
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFromTablesRightDeep
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1227
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFromTables
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1204
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFrom
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1131
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelectClause
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1052
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelectStmtWithoutParens
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:1000
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelect.func1
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:969
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).processWiths
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/with.go:116
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelect
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:968
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:305
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:252
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:226
| github.com/cockroachdb/cockroach/pkg/sql.(*optPlanningCtx).buildReusableMemo
| github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:418
| github.com/cockroachdb/cockroach/pkg/sql.(*planner).prepareUsingOptimizer
| github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:156
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).populatePrepared
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:287
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare.func2
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:239
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:244
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).addPreparedStmt
| github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:107
Wraps: (3) runtime error: invalid memory address or nil pointer dereference
| -- cause hidden behind barrier
| runtime error: invalid memory address or nil pointer dereference
| (1) runtime error: invalid memory address or nil pointer dereference
| Error types: (1) runtime.errorString
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: runtime error: invalid memory address or nil pointer dereference
catch.go:29: *withstack.withStack (top exception)
*assert.withAssertionFailure

Stacktrace (expand for inline code snippets):

// get reported to Sentry.
err = errors.HandleAsAssertionFailure(err)
}
in pkg/util/errorutil.ShouldCatch
// manipulate locks.
if ok, e := errorutil.ShouldCatch(r); ok {
err = e
in pkg/sql/opt/optbuilder.(*Builder).Build.func1
GOROOT/src/runtime/panic.go#L883-L885 in runtime.gopanic
GOROOT/src/runtime/panic.go#L259-L261 in runtime.panicmem
GOROOT/src/runtime/signal_unix.go#L834-L836 in runtime.sigpanic
) {
item.Typ = item.Element.DataType()
BuildSharedProps(item.Element, &scalar.Shared, b.evalCtx)
in pkg/sql/opt/memo.(*logicalPropsBuilder).buildProjectionsItemProps
https://github.com/cockroachdb/cockroach/blob/0c6903954dc9cd6c38c78ce5192cfd9a8183c110/bazel-out/k8-opt/bin/pkg/sql/opt/memo/expr.og.go#L9027-L9029 in pkg/sql/opt/memo.(*ProjectionsItem).PopulateProps
https://github.com/cockroachdb/cockroach/blob/0c6903954dc9cd6c38c78ce5192cfd9a8183c110/bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go#L12358-L12360 in pkg/sql/opt/norm.(*Factory).ConstructProjectionsItem
virtualColIDs.ForEach(func(col opt.ColumnID) {
item := b.factory.ConstructProjectionsItem(tabMeta.ComputedCols[col], col)
if !item.ScalarProps().OuterCols.SubsetOf(scanColIDs) {
in pkg/sql/opt/optbuilder.(*Builder).buildScan.func1
// ForEach calls a function for each column in the set (in increasing order).
func (s ColSet) ForEach(f func(col ColumnID)) { s.set.ForEach(func(i int) { f(retVal(i)) }) }
in pkg/sql/opt.ColSet.ForEach.func1
https://github.com/cockroachdb/cockroach/blob/0c6903954dc9cd6c38c78ce5192cfd9a8183c110/pkg/util/pkg/util/fast_int_set.go#L215-L217 in pkg/util.FastIntSet.ForEach
// ForEach calls a function for each column in the set (in increasing order).
func (s ColSet) ForEach(f func(col ColumnID)) { s.set.ForEach(func(i int) { f(retVal(i)) }) }
in pkg/sql/opt.ColSet.ForEach
proj := make(memo.ProjectionsExpr, 0, virtualColIDs.Len())
virtualColIDs.ForEach(func(col opt.ColumnID) {
item := b.factory.ConstructProjectionsItem(tabMeta.ComputedCols[col], col)
in pkg/sql/opt/optbuilder.(*Builder).buildScan
tabMeta := b.addTable(t, &resName)
return b.buildScan(
tabMeta,
in pkg/sql/opt/optbuilder.(*Builder).buildDataSource
outScope = b.buildDataSource(source.Expr, indexFlags, locking, inScope)
in pkg/sql/opt/optbuilder.(*Builder).buildDataSource
) (outScope *scope) {
outScope = b.buildDataSource(tables[0], nil /* indexFlags */, locking, inScope)
in pkg/sql/opt/optbuilder.(*Builder).buildFromTablesRightDeep
}
return b.buildFromTablesRightDeep(tables, locking, inScope)
}
in pkg/sql/opt/optbuilder.(*Builder).buildFromTables
if len(from.Tables) > 0 {
outScope = b.buildFromTables(from.Tables, locking, inScope)
} else {
in pkg/sql/opt/optbuilder.(*Builder).buildFrom
) (outScope *scope) {
fromScope := b.buildFrom(sel.From, locking, inScope)
in pkg/sql/opt/optbuilder.(*Builder).buildSelectClause
case *tree.SelectClause:
outScope = b.buildSelectClause(t, orderBy, locking, desiredTypes, inScope)
in pkg/sql/opt/optbuilder.(*Builder).buildSelectStmtWithoutParens
return b.processWiths(with, inScope, func(inScope *scope) *scope {
return b.buildSelectStmtWithoutParens(
wrapped, orderBy, limit, locking, desiredTypes, inScope,
in pkg/sql/opt/optbuilder.(*Builder).buildSelect.func1
inScope.atRoot = false
outScope := buildStmt(inScope)
outScope.expr = b.buildWiths(outScope.expr, correlatedCTEs)
in pkg/sql/opt/optbuilder.(*Builder).processWiths
return b.processWiths(with, inScope, func(inScope *scope) *scope {
return b.buildSelectStmtWithoutParens(
in pkg/sql/opt/optbuilder.(*Builder).buildSelect
case *tree.Select:
return b.buildSelect(stmt, noRowLocking, desiredTypes, inScope)
in pkg/sql/opt/optbuilder.(*Builder).buildStmt
b.ctes = nil
outScope = b.buildStmt(stmt, desiredTypes, inScope)
// Build With operators for any CTEs hoisted to the top level.
in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot
// and physical properties.
outScope := b.buildStmtAtRoot(b.stmt, nil /* desiredTypes */)
in pkg/sql/opt/optbuilder.(*Builder).Build
bld.KeepPlaceholders = true
if err := bld.Build(); err != nil {
return nil, err
in pkg/sql.(*optPlanningCtx).buildReusableMemo
memo, err := opc.buildReusableMemo(ctx)
if err != nil {
in pkg/sql.(*planner).prepareUsingOptimizer
// and execute paths.
flags, err := p.prepareUsingOptimizer(ctx)
if err != nil {
in pkg/sql.(*connExecutor).populatePrepared
p.semaCtx.Annotations = tree.MakeAnnotations(stmt.NumAnnotations)
flags, err = ex.populatePrepared(ctx, txn, placeholderHints, p, origin)
return err
in pkg/sql.(*connExecutor).prepare.func2
// Use the existing transaction.
if err := prepare(ctx, ex.state.mu.txn); err != nil && origin != PreparedStatementOriginSessionMigration {
return nil, err
in pkg/sql.(*connExecutor).prepare
// Prepare the query. This completes the typing of placeholders.
prepared, err := ex.prepare(ctx, stmt, placeholderHints, rawTypeHints, origin)
if err != nil {
in pkg/sql.(*connExecutor).addPreparedStmt

pkg/util/errorutil/catch.go in pkg/util/errorutil.ShouldCatch at line 29
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).Build.func1 at line 192
GOROOT/src/runtime/panic.go in runtime.gopanic at line 884
GOROOT/src/runtime/panic.go in runtime.panicmem at line 260
GOROOT/src/runtime/signal_unix.go in runtime.sigpanic at line 835
pkg/sql/opt/memo/logical_props_builder.go in pkg/sql/opt/memo.(*logicalPropsBuilder).buildProjectionsItemProps at line 1576
bazel-out/k8-opt/bin/pkg/sql/opt/memo/expr.og.go in pkg/sql/opt/memo.(*ProjectionsItem).PopulateProps at line 9028
bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go in pkg/sql/opt/norm.(*Factory).ConstructProjectionsItem at line 12359
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildScan.func1 at line 659
pkg/sql/opt/colset.go in pkg/sql/opt.ColSet.ForEach.func1 at line 83
pkg/util/pkg/util/fast_int_set.go in pkg/util.FastIntSet.ForEach at line 216
pkg/sql/opt/colset.go in pkg/sql/opt.ColSet.ForEach at line 83
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildScan at line 658
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildDataSource at line 121
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildDataSource at line 66
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildFromTablesRightDeep at line 1227
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildFromTables at line 1204
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildFrom at line 1131
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelectClause at line 1052
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelectStmtWithoutParens at line 1000
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelect.func1 at line 969
pkg/sql/opt/optbuilder/with.go in pkg/sql/opt/optbuilder.(*Builder).processWiths at line 116
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelect at line 968
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmt at line 305
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot at line 252
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).Build at line 226
pkg/sql/plan_opt.go in pkg/sql.(*optPlanningCtx).buildReusableMemo at line 418
pkg/sql/plan_opt.go in pkg/sql.(*planner).prepareUsingOptimizer at line 156
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).populatePrepared at line 287
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).prepare.func2 at line 239
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).prepare at line 244
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).addPreparedStmt at line 107
Tag Value
Cockroach Release v22.2.5
Cockroach SHA: 0c69039
Platform linux amd64
Distribution CCL
Environment v22.2.5
Command server
Go Version ``
# of CPUs
# of Goroutines

Jira issue: CRDB-25903

@cockroach-teamcity cockroach-teamcity added 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 Mar 24, 2023
@yuzefovich
Copy link
Member

dup of #95857

@exalate-issue-sync exalate-issue-sync bot changed the title sentry: catch.go:29: runtime error: invalid memory address or nil pointer dereference (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/util/erro... sentry: catch.go:29: runtime error: invalid memory address or nil pointer dereference (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/util/erro... Apr 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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

2 participants