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: expr.go:491: lookup for ComparisonExpr ×'s CmpOp failed (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/sql/sem/tree.MemoizeCo... #124266

Closed
cockroach-sentry opened this issue May 16, 2024 · 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-sentry
Copy link
Collaborator

cockroach-sentry commented May 16, 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/5357662955/?referrer=webhooks_plugin

Panic Message:

expr.go:491: lookup for ComparisonExpr ×'s CmpOp failed
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/cockroach/pkg/sql/sem/tree.MemoizeComparisonExprOp
  | 	github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:491
  | github.com/cockroachdb/cockroach/pkg/sql/sem/tree.NewTypedComparisonExpr
  | 	github.com/cockroachdb/cockroach/pkg/sql/sem/tree/expr.go:400
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildComparison
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:264
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:114
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildBoolean
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:215
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:114
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildBoolean
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:184
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:114
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildScalarWithMap
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/scalar.go:124
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildSelect
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:941
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:224
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildProject
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:1034
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:227
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildMutationInput
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:45
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildUpdate
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:343
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/relational.go:285
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).build
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/builder.go:310
  | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).Build
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/builder.go:257
  | github.com/cockroachdb/cockroach/pkg/sql.(*optPlanningCtx).runExecBuilder
  | 	github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:636
  | github.com/cockroachdb/cockroach/pkg/sql.(*planner).makeOptimizerPlan
  | 	github.com/cockroachdb/cockroach/pkg/sql/plan_opt.go:310
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).makeExecPlan
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2028
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).dispatchToExecutionEngine
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1537
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1036
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt.func1
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:142
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithProfiling
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:3084
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:141
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execPortal
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:247
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd.func2
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2288
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2290
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2105
  | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn
  | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:902
  | github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommandsAsync.func1
  | 	github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:310
Wraps: (3) lookup for ComparisonExpr ×'s CmpOp failed
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.leafError
-- report composition:
*errutil.leafError: lookup for ComparisonExpr ×'s CmpOp failed
expr.go:491: *withstack.withStack (top exception)
*assert.withAssertionFailure
Stacktrace (expand for inline code snippets):

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.

return err
}()
// Note: we write to ex.statsCollector.phaseTimes, instead of ex.phaseTimes,

canAutoCommit := ex.implicitTxn() && tcmd.FollowedBySync
ev, payload, err = ex.execPortal(ctx, portal, portalName, stmtRes, pinfo, canAutoCommit)
return err

}
ev, payload, retErr = ex.execStmt(ctx, portal.Stmt.Statement, &portal, pinfo, stmtRes, canAutoCommit)
// For a non-pausable portal, it is considered exhausted regardless of the

}
err = ex.execWithProfiling(ctx, ast, preparedStmt, func(ctx context.Context) error {
ev, payload, err = ex.execStmtInOpenState(ctx, parserStmt, portal, pinfo, res, canAutoCommit)

} else {
err = op(ctx)
}

err = ex.execWithProfiling(ctx, ast, preparedStmt, func(ctx context.Context) error {
ev, payload, err = ex.execStmtInOpenState(ctx, parserStmt, portal, pinfo, res, canAutoCommit)
return err

if err = ex.dispatchToExecutionEngine(stmtCtx, p, res); err != nil {
stmtThresholdSpan.Finish()

// between here and there needs to happen even if there's an error.
err = ex.makeExecPlan(ctx, planner)
defer planner.curPlan.close(ctx)

func (ex *connExecutor) makeExecPlan(ctx context.Context, planner *planner) error {
if err := planner.makeOptimizerPlan(ctx); err != nil {
log.VEventf(ctx, 1, "optimizer plan failed: %v", err)

// If we got here, we did not create a plan above.
return opc.runExecBuilder(
ctx,

evalCtx, allowAutoCommit, statements.IsANSIDML(stmt.AST))
plan, err := bld.Build()
if err != nil {

func (b *Builder) Build() (_ exec.Plan, err error) {
plan, err := b.build(b.e)
if err != nil {

return b.buildRelational(rel)
}

case *memo.UpdateExpr:
ep, err = b.buildUpdate(t)

input, err := b.buildMutationInput(upd, upd.Input, colList, &upd.MutationPrivate)
if err != nil {

input, err := b.buildRelational(inputExpr)
if err != nil {

case *memo.ProjectExpr:
ep, err = b.buildProject(t)

md := b.mem.Metadata()
input, err := b.buildRelational(prj.Input)
if err != nil {

case *memo.SelectExpr:
ep, err = b.buildSelect(t)

}
filter, err := b.buildScalarWithMap(input.outputCols, &sel.Filters)
if err != nil {

}
return b.buildScalar(&ctx, scalar)
}

}
return fn(b, ctx, scalar)
}

case opt.AndOp, opt.OrOp:
expr, err := b.buildScalar(ctx, scalar.Child(0).(opt.ScalarExpr))
if err != nil {

}
return fn(b, ctx, scalar)
}

case opt.FiltersItemOp:
return b.buildScalar(ctx, scalar.Child(0).(opt.ScalarExpr))

}
return fn(b, ctx, scalar)
}

operator := opt.ComparisonOpReverseMap[scalar.Op()]
return tree.NewTypedComparisonExpr(treecmp.MakeComparisonOperator(operator), left, right), nil
}

node.typ = types.Bool
MemoizeComparisonExprOp(node)
return node

if !ok {
panic(errors.AssertionFailedf("lookup for ComparisonExpr %s's CmpOp failed",
AsStringWithFlags(node, FmtShowTypes)))

pkg/sql/pgwire/conn.go in pkg/sql/pgwire.(*conn).processCommandsAsync.func1 at line 310
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn at line 902
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).run at line 2105
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd at line 2290
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd.func2 at line 2288
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execPortal at line 247
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmt at line 141
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execWithProfiling at line 3084
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmt.func1 at line 142
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmtInOpenState at line 1036
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).dispatchToExecutionEngine at line 1537
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).makeExecPlan at line 2028
pkg/sql/plan_opt.go in pkg/sql.(*planner).makeOptimizerPlan at line 310
pkg/sql/plan_opt.go in pkg/sql.(*optPlanningCtx).runExecBuilder at line 636
pkg/sql/opt/exec/execbuilder/builder.go in pkg/sql/opt/exec/execbuilder.(*Builder).Build at line 257
pkg/sql/opt/exec/execbuilder/builder.go in pkg/sql/opt/exec/execbuilder.(*Builder).build at line 310
pkg/sql/opt/exec/execbuilder/relational.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational at line 285
pkg/sql/opt/exec/execbuilder/mutation.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildUpdate at line 343
pkg/sql/opt/exec/execbuilder/mutation.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildMutationInput at line 45
pkg/sql/opt/exec/execbuilder/relational.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational at line 227
pkg/sql/opt/exec/execbuilder/relational.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildProject at line 1034
pkg/sql/opt/exec/execbuilder/relational.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildRelational at line 224
pkg/sql/opt/exec/execbuilder/relational.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildSelect at line 941
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildScalarWithMap at line 124
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar at line 114
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildBoolean at line 184
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar at line 114
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildBoolean at line 215
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildScalar at line 114
pkg/sql/opt/exec/execbuilder/scalar.go in pkg/sql/opt/exec/execbuilder.(*Builder).buildComparison at line 264
pkg/sql/sem/tree/expr.go in pkg/sql/sem/tree.NewTypedComparisonExpr at line 400
pkg/sql/sem/tree/expr.go in pkg/sql/sem/tree.MemoizeComparisonExprOp at line 491

Tags

Tag Value
Command server
Environment v23.1.11
Go Version go1.19.10
Platform linux amd64
Distribution CCL
Cockroach Release v23.1.11
Cockroach SHA 62ad175
# of CPUs 32
# of Goroutines 622

Jira issue: CRDB-38800

@cockroach-sentry cockroach-sentry added O-sentry Originated from an in-the-wild panic report. C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. labels May 16, 2024
@yuzefovich
Copy link
Member

dup of #114093

@exalate-issue-sync exalate-issue-sync bot changed the title Sentry: expr.go:491: lookup for ComparisonExpr ×'s CmpOp failed (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/sql/sem/tree.MemoizeCo... Sentry: expr.go:491: lookup for ComparisonExpr ×'s CmpOp failed (1) assertion failure Wraps: (2) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/sql/sem/tree.MemoizeCo... May 23, 2024
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