Skip to content

Sentry: memo.go:498: cannot overwrite × / × ({20.32 {%!g(bool=false) %!g(bool=false) %!g(bool=false)}}) with × / × (20.32) (1) assertion failure Wraps: (2) attached stack trace -- stack trace: ... #144707

Closed
@cockroach-sentry

Description

@cockroach-sentry

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

Panic Message:

memo.go:498: cannot overwrite × / × ({20.32 {%!g(bool=false) %!g(bool=false) %!g(bool=false)}}) with × / × (20.32)
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*Memo).SetBestProps
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/memo/memo.go:498
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:816
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
  | github.com/cockroachdb/cockroach/pkg/sql/opt/xform.(*Optimizer).setLowestCostTree
  | 	github.com/cockroachdb/cockroach/pkg/sql/opt/xform/optimizer.go:801
Wraps: (3) cannot overwrite × / × ({20.32 {%!g(bool=false) %!g(bool=false) %!g(bool=false)}}) with × / × (20.32)
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.leafError
-- report composition:
*errutil.leafError: cannot overwrite × / × ({20.32 {%!g(bool=false) %!g(bool=false) %!g(bool=false)}}) with × / × (20.32)
memo.go:498: *withstack.withStack (top exception)
*assert.withAssertionFailure
Stacktrace (expand for inline code snippets):

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

}
after := o.setLowestCostTree(before, childProps)
if after != before {

provided.Distribution = distribution.BuildProvided(o.ctx, o.evalCtx, relParent, &parentProps.Distribution)
o.mem.SetBestProps(relParent, parentProps, &provided, relCost)
}

e.Cost() != cost {
panic(errors.AssertionFailedf(
"cannot overwrite %s / %s (%.9g) with %s / %s (%.9g)",

pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 801
pkg/sql/opt/xform/optimizer.go in pkg/sql/opt/xform.(*Optimizer).setLowestCostTree at line 816
pkg/sql/opt/memo/memo.go in pkg/sql/opt/memo.(*Memo).SetBestProps at line 498

Tags

Tag Value
Command server
Environment v24.1.16
Go Version go1.22.5 X:nocoverageredesign
Platform linux amd64
Distribution CCL
Cockroach Release v24.1.16
Cockroach SHA 5ace092
# of CPUs 128
# of Goroutines 1946

Jira issue: CRDB-49495

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.O-sentryOriginated from an in-the-wild panic report.T-sql-queriesSQL Queries TeamX-blathers-triagedblathers was able to find an ownerbranch-release-24.1Used to mark GA and release blockers, technical advisories, and bugs for 24.1

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions