cockroachdb / cockroachdb/cockroach
Sentry: catch.go:24: runtime error: index out of range [-1] (1) while executing: INSERT INTO _(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) VALUES ('_'::UUID::UUID, '_', '_', '_', '_', '_', _...
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
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/7733644101/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7733644101/?referrer=webhooks_plugin)
Panic Message:
```
catch.go:24: runtime error: index out of range [-1]
(1) while executing: INSERT INTO _(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) VALUES ('_'::UUID::UUID, '_', '_', '_', '_', '_', _, _, _, _, _, _, _, _, _, '_', _, _) RETURNING _._
Wraps: (2) assertion failure
Wraps: (3) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/util/errorutil.shouldCatch
| pkg/util/errorutil/catch.go:24
| github.com/cockroachdb/cockroach/pkg/util/errorutil.MaybeCatchPanic
| pkg/util/errorutil/catch.go:38
| runtime.gopanic
| GOROOT/src/runtime/panic.go:783
| runtime.goPanicIndex
| GOROOT/src/runtime/panic.go:115
| github.com/cockroachdb/cockroach/pkg/sql/opt.(*Metadata).ColumnMeta
| pkg/sql/opt/metadata.go:1096
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*uniqueCheckHelper).init
| pkg/sql/opt/optbuilder/mutation_builder_unique.go:313
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*mutationBuilder).buildUniqueChecksForInsert
| pkg/sql/opt/optbuilder/mutation_builder_unique.go:72
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*mutationBuilder).buildInsert
| pkg/sql/opt/optbuilder/insert.go:819
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildInsert
| pkg/sql/opt/optbuilder/insert.go:313
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt.func2
| pkg/sql/opt/optbuilder/builder.go:408
| 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:407
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRootWithScope
| pkg/sql/opt/optbuilder/builder.go:337
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot
| pkg/sql/opt/optbuilder/builder.go:313
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build
| pkg/sql/opt/optbuilder/builder.go:292
| github.com/cockroachdb/cockroach/pkg/sql.(*optPlanningCtx).buildExecMemo
| pkg/sql/plan_opt.go:1003
| github.com/cockroachdb/cockroach/pkg/sql.(*planner).makeOptimizerPlanInternal
| pkg/sql/plan_opt.go:348
| github.com/cockroachdb/cockroach/pkg/sql.(*planner).makeOptimizerPlan
| pkg/sql/plan_opt.go:328
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).makeExecPlan
| pkg/sql/conn_executor_exec.go:3496
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).dispatchToExecutionEngine
| pkg/sql/conn_executor_exec.go:3066
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState
| pkg/sql/conn_executor_exec.go:1133
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt.func2
| pkg/sql/conn_executor_exec.go:183
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithProfiling
| pkg/sql/conn_executor_exec.go:4786
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt
| pkg/sql/conn_executor_exec.go:182
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd.func1
| pkg/sql/conn_executor.go:2504
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd
| pkg/sql/conn_executor.go:2509
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run
| pkg/sql/conn_executor.go:2417
| github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn
| pkg/sql/conn_executor.go:1135
| github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommands
| pkg/sql/pgwire/conn.go:254
| github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveImpl.func4
| pkg/sql/pgwire/server.go:1295
| runtime.goexit
| src/runtime/asm_amd64.s:1693
Wraps: (4) runtime error: index out of range [-1]
| -- cause hidden behind barrier
| runtime error: index out of range [-1]
| (1) runtime error: index out of range [-1]
| Error types: (1) runtime.boundsError
Error types: (1) *safedetails.withSafeDetails (2) *assert.withAssertionFailure (3) *withstack.withStack (4) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: runtime error: index out of range [-1]
catch.go:24: *withstack.withStack (top exception)
*assert.withAssertionFailure
*safedetails.withSafeDetails: while executing: INSERT INTO _(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) VALUES ('_'::UUID::UUID, '_', '_', '_', '_', '_', _, _, _, _, _, _, _, _, _, '_', _, _) RETURNING _._
```
Stacktrace (expand for inline code snippets):
[src/runtime/asm_amd64.s#L1692-L1694](src/runtime/asm_amd64.s#L1692-L1694)
[pkg/sql/pgwire/server.go#L1294-L1296](pkg/sql/pgwire/server.go#L1294-L1296)
[pkg/sql/pgwire/conn.go#L253-L255](pkg/sql/pgwire/conn.go#L253-L255)
[pkg/sql/conn_executor.go#L1134-L1136](pkg/sql/conn_executor.go#L1134-L1136)
[pkg/sql/conn_executor.go#L2416-L2418](pkg/sql/conn_executor.go#L2416-L2418)
[pkg/sql/conn_executor.go#L2508-L2510](pkg/sql/conn_executor.go#L2508-L2510)
[pkg/sql/conn_executor.go#L2503-L2505](pkg/sql/conn_executor.go#L2503-L2505)
[pkg/sql/conn_executor_exec.go#L181-L183](pkg/sql/conn_executor_exec.go#L181-L183)
[pkg/sql/conn_executor_exec.go#L4785-L4787](pkg/sql/conn_executor_exec.go#L4785-L4787)
[pkg/sql/conn_executor_exec.go#L182-L184](pkg/sql/conn_executor_exec.go#L182-L184)
[pkg/sql/conn_executor_exec.go#L1132-L1134](pkg/sql/conn_executor_exec.go#L1132-L1134)
[pkg/sql/conn_executor_exec.go#L3065-L3067](pkg/sql/conn_executor_exec.go#L3065-L3067)
[pkg/sql/conn_executor_exec.go#L3495-L3497](pkg/sql/conn_executor_exec.go#L3495-L3497)
[pkg/sql/plan_opt.go#L327-L329](pkg/sql/plan_opt.go#L327-L329)
[pkg/sql/plan_opt.go#L347-L349](pkg/sql/plan_opt.go#L347-L349)
[pkg/sql/plan_opt.go#L1002-L1004](pkg/sql/plan_opt.go#L1002-L1004)
[pkg/sql/opt/optbuilder/builder.go#L291-L293](pkg/sql/opt/optbuilder/builder.go#L291-L293)
[pkg/sql/opt/optbuilder/builder.go#L312-L314](pkg/sql/opt/optbuilder/builder.go#L312-L314)
[pkg/sql/opt/optbuilder/builder.go#L336-L338](pkg/sql/opt/optbuilder/builder.go#L336-L338)
[pkg/sql/opt/optbuilder/builder.go#L406-L408](pkg/sql/opt/optbuilder/builder.go#L406-L408)
[pkg/sql/opt/optbuilder/with.go#L109-L111](pkg/sql/opt/optbuilder/with.go#L109-L111)
[pkg/sql/opt/optbuilder/builder.go#L407-L409](pkg/sql/opt/optbuilder/builder.go#L407-L409)
[pkg/sql/opt/optbuilder/insert.go#L312-L314](pkg/sql/opt/optbuilder/insert.go#L312-L314)
[pkg/sql/opt/optbuilder/insert.go#L818-L820](pkg/sql/opt/optbuilder/insert.go#L818-L820)
[pkg/sql/opt/optbuilder/mutation_builder_unique.go#L71-L73](pkg/sql/opt/optbuilder/mutation_builder_unique.go#L71-L73)
[pkg/sql/opt/optbuilder/mutation_builder_unique.go#L312-L314](pkg/sql/opt/optbuilder/mutation_builder_unique.go#L312-L314)
[pkg/sql/opt/metadata.go#L1095-L1097](pkg/sql/opt/metadata.go#L1095-L1097)
[GOROOT/src/runtime/panic.go#L114-L116](GOROOT/src/runtime/panic.go#L114-L116)
[GOROOT/src/runtime/panic.go#L782-L784](GOROOT/src/runtime/panic.go#L782-L784)
[pkg/util/errorutil/catch.go#L37-L39](pkg/util/errorutil/catch.go#L37-L39)
[pkg/util/errorutil/catch.go#L23-L25](pkg/util/errorutil/catch.go#L23-L25)
```
src/runtime/asm_amd64.s in runtime.goexit at line 1693
pkg/sql/pgwire/server.go in pkg/sql/pgwire.(*Server).serveImpl.func4 at line 1295
pkg/sql/pgwire/conn.go in pkg/sql/pgwire.(*conn).processCommands at line 254
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn at line 1135
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).run at line 2417
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd at line 2509
pkg/sql/conn_executor.go in pkg/sql.(*connExecutor).execCmd.func1 at line 2504
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmt at line 182
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execWithProfiling at line 4786
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmt.func2 at line 183
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmtInOpenState at line 1133
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).dispatchToExecutionEngine at line 3066
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).makeExecPlan at line 3496
pkg/sql/plan_opt.go in pkg/sql.(*planner).makeOptimizerPlan at line 328
pkg/sql/plan_opt.go in pkg/sql.(*planner).makeOptimizerPlanInternal at line 348
pkg/sql/plan_opt.go in pkg/sql.(*optPlanningCtx).buildExecMemo at line 1003
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).Build at line 292
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRoot at line 313
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmtAtRootWithScope at line 337
pkg/sql/opt/optbuilder/builder.go in pkg/sql/opt/optbuilder.(*Builder).buildStmt at line 407
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 408
pkg/sql/opt/optbuilder/insert.go in pkg/sql/opt/optbuilder.(*Builder).buildInsert at line 313
pkg/sql/opt/optbuilder/insert.go in pkg/sql/opt/optbuilder.(*mutationBuilder).buildInsert at line 819
pkg/sql/opt/optbuilder/mutation_builder_unique.go in pkg/sql/opt/optbuilder.(*mutationBuilder).buildUniqueChecksForInsert at line 72
pkg/sql/opt/optbuilder/mutation_builder_unique.go in pkg/sql/opt/optbuilder.(*uniqueCheckHelper).init at line 313
pkg/sql/opt/metadata.go in pkg/sql/opt.(*Metadata).ColumnMeta at line 1096
GOROOT/src/runtime/panic.go in runtime.goPanicIndex at line 115
GOROOT/src/runtime/panic.go in runtime.gopanic at line 783
pkg/util/errorutil/catch.go in pkg/util/errorutil.MaybeCatchPanic at line 38
pkg/util/errorutil/catch.go in pkg/util/errorutil.shouldCatch at line 24
```
### Tags
| Tag | Value |
| --- | --- |
| Command | mt start-sql |
| Environment | v26.2.6 |
| Go Version | go1.25.13 |
| Platform | linux amd64 |
| Distribution | CCL |
| Cockroach Release | v26.2.6 |
| Cockroach SHA | f0adfbe4c645d4d458de930b415fd46c4459ad90 |
| # of CPUs | 16 |
| # of Goroutines | 1388 |
Jira issue: CRDB-68430
Contributor guide
Research direction
Start by inspecting pkg/sql/opt/metadata.go around Metadata.ColumnMeta and the caller in pkg/sql/opt/optbuilder/mutation_builder_unique.go:313, then trace buildUniqueChecksForInsert in mutation_builder_unique.go:72 and the INSERT path in insert.go:819. Reproduce the reported INSERT if possible and add a regression test covering the failing unique-check metadata lookup; done means the statement no longer panics.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100