Skip to content

sql: v25.2.6: addTargetColsForUpdate cannot be called more than once #154672

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

Panic Message:

update.go:136: addTargetColsForUpdate cannot be called more than once
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*mutationBuilder).addTargetColsForUpdate
  | 	pkg/sql/opt/optbuilder/update.go:136
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildInsert
  | 	pkg/sql/opt/optbuilder/insert.go:389
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt.func2
  | 	pkg/sql/opt/optbuilder/builder.go:395
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).processWiths
  | 	pkg/sql/opt/optbuilder/with.go:110
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt
  | 	pkg/sql/opt/optbuilder/builder.go:394
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRootWithScope
  | 	pkg/sql/opt/optbuilder/builder.go:321
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot
  | 	pkg/sql/opt/optbuilder/builder.go:302
  | github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build
  | 	pkg/sql/opt/optbuilder/builder.go:281
  | github.com/cockroachdb/cockroach/pkg/sql.(*optPlanningCtx).buildReusableMemo
  | 	pkg/sql/plan_opt.go:494
  | github.com/cockroachdb/cockroach/pkg/sql.(*planner).prepareUsingOptimizer
  | 	pkg/sql/plan_opt.go:173
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).populatePrepared
  | 	pkg/sql/conn_executor_prepare.go:339
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare.func2
  | 	pkg/sql/conn_executor_prepare.go:279
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare
  | 	pkg/sql/conn_executor_prepare.go:284
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).addPreparedStmt
  | 	pkg/sql/conn_executor_prepare.go:117
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execPrepare
  | 	pkg/sql/conn_executor_prepare.go:78
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd
  | 	pkg/sql/conn_executor.go:2598
  | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run
  | 	pkg/sql/conn_executor.go:2374
  | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn
  | 	pkg/sql/conn_executor.go:1034
  | github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommands
  | 	pkg/sql/pgwire/conn.go:252
  | github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveImpl.func4
  | 	pkg/sql/pgwire/server.go:1197
  | runtime.goexit
  | 	src/runtime/asm_arm64.s:1223
Wraps: (3) addTargetColsForUpdate cannot be called more than once
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.leafError
-- report composition:
*errutil.leafError: addTargetColsForUpdate cannot be called more than once
update.go:136: *withstack.withStack (top exception)
*assert.withAssertionFailure
Stacktrace (expand for inline code snippets):

src/runtime/asm_arm64.s#L1222-L1224
pkg/sql/pgwire/server.go#L1196-L1198
pkg/sql/pgwire/conn.go#L251-L253
pkg/sql/conn_executor.go#L1033-L1035
pkg/sql/conn_executor.go#L2373-L2375
pkg/sql/conn_executor.go#L2597-L2599
pkg/sql/conn_executor_prepare.go#L77-L79
pkg/sql/conn_executor_prepare.go#L116-L118
pkg/sql/conn_executor_prepare.go#L283-L285
pkg/sql/conn_executor_prepare.go#L278-L280
pkg/sql/conn_executor_prepare.go#L338-L340
pkg/sql/plan_opt.go#L172-L174
pkg/sql/plan_opt.go#L493-L495
pkg/sql/opt/optbuilder/builder.go#L280-L282
pkg/sql/opt/optbuilder/builder.go#L301-L303
pkg/sql/opt/optbuilder/builder.go#L320-L322
pkg/sql/opt/optbuilder/builder.go#L393-L395
pkg/sql/opt/optbuilder/with.go#L109-L111
pkg/sql/opt/optbuilder/builder.go#L394-L396
pkg/sql/opt/optbuilder/insert.go#L388-L390
pkg/sql/opt/optbuilder/update.go#L135-L137

src/runtime/asm_arm64.s in runtime.goexit at line 1223
pkg/sql/pgwire/server.go in pkg/sql/pgwire.(*Server).serveImpl.func4 at line 1197
pkg/sql/pgwire/conn.go in pkg/sql/pgwire.(*conn).processCommands at line 252
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn at line 1034
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).run at line 2374
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd at line 2598
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).execPrepare at line 78
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).addPreparedStmt at line 117
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).prepare at line 284
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).prepare.func2 at line 279
pkg/sql/conn_executor_prepare.go in pkg/sql.(*connExecutor).populatePrepared at line 339
pkg/sql/plan_opt.go in pkg/sql.(*planner).prepareUsingOptimizer at line 173
pkg/sql/plan_opt.go in pkg/sql.(*optPlanningCtx).buildReusableMemo at line 494
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).Build at line 281
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot at line 302
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRootWithScope at line 321
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmt at line 394
pkg/sql/opt/optbuilder/with.go in pkg/sql/opt/optbuilder.(*Builder).processWiths at line 110
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmt.func2 at line 395
pkg/sql/opt/optbuilder/insert.go in pkg/sql/opt/optbuilder.(*Builder).buildInsert at line 389
pkg/sql/opt/optbuilder/update.go in pkg/sql/opt/optbuilder.(*mutationBuilder).addTargetColsForUpdate at line 136

Tags

Tag Value
Command start-single-node
Environment v25.2.5
Go Version go1.23.11 X:nocoverageredesign
Platform linux arm64
Distribution CCL
Cockroach Release v25.2.5
Cockroach SHA f08e98c
# of CPUs 12
# of Goroutines 518

Jira issue: CRDB-55070

Metadata

Metadata

Assignees

Labels

A-sql-triggerTriggers and Trigger FunctionsC-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.S-3Medium-low impact: incurs increased costs for some users (incl lower avail, recoverable bad data)T-sql-queriesSQL Queries TeamX-blathers-triagedblathers was able to find an ownerbranch-release-25.2

Type

No type

Projects

Status

Short-term

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions