cockroachdb / cockroachdb/cockroach
Sentry: catch.go:24: runtime error: index out of range [-9223372036854775806] (1) while executing: SELECT st_astext(st_setpoint(_, _, _)) Wraps: (2) assertion failure Wraps: (3) attached stack trace ...
- 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/7695145029/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7695145029/?referrer=webhooks_plugin)
Panic Message:
```
catch.go:24: runtime error: index out of range [-9223372036854775806]
(1) while executing: SELECT st_astext(st_setpoint(_, _, _))
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/geo/geomfn.setPoint
| pkg/geo/geomfn/linestring.go:213
| github.com/cockroachdb/cockroach/pkg/geo/geomfn.SetPoint
| pkg/geo/geomfn/linestring.go:186
| github.com/cockroachdb/cockroach/pkg/sql/sem/builtins.init.func657
| pkg/sql/sem/builtins/geo_builtins.go:5368
| github.com/cockroachdb/cockroach/pkg/sql/sem/eval.(*evaluator).EvalFuncExpr
| pkg/sql/sem/eval/expr.go:502
| github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*FuncExpr).Eval
| bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go:291
| github.com/cockroachdb/cockroach/pkg/sql/sem/eval.Expr
| pkg/sql/sem/eval/expr.go:22
| github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*CustomFuncs).FoldFunction
| pkg/sql/opt/norm/fold_constants_funcs.go:729
| github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructFunction
| bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go:22280
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFunction
| pkg/sql/opt/optbuilder/scalar.go:574
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildScalar
| pkg/sql/opt/optbuilder/scalar.go:331
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFunction
| pkg/sql/opt/optbuilder/scalar.go:570
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildScalar
| pkg/sql/opt/optbuilder/scalar.go:331
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildProjectionList
| pkg/sql/opt/optbuilder/project.go:203
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelectClause
| pkg/sql/opt/optbuilder/select.go:1317
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelectStmtWithoutParens
| pkg/sql/opt/optbuilder/select.go:1210
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelect.func1
| pkg/sql/opt/optbuilder/select.go:1162
| 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).buildSelect
| pkg/sql/opt/optbuilder/select.go:1161
| github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt
| pkg/sql/opt/optbuilder/builder.go:396
| 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:3509
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).dispatchToExecutionEngine
| pkg/sql/conn_executor_exec.go:3079
| github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState
| pkg/sql/conn_executor_exec.go:1178
Wraps: (4) runtime error: index out of range [-9223372036854775806]
| -- cause hidden behind barrier
| runtime error: index out of range [-9223372036854775806]
| (1) runtime error: index out of range [-9223372036854775806]
| 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 [-9223372036854775806]
catch.go:24: *withstack.withStack (top exception)
*assert.withAssertionFailure
*safedetails.withSafeDetails: while executing: SELECT st_astext(st_setpoint(_, _, _))
```
Stacktrace (expand for inline code snippets):
[pkg/sql/conn_executor_exec.go#L1177-L1179](pkg/sql/conn_executor_exec.go#L1177-L1179)
[pkg/sql/conn_executor_exec.go#L3078-L3080](pkg/sql/conn_executor_exec.go#L3078-L3080)
[pkg/sql/conn_executor_exec.go#L3508-L3510](pkg/sql/conn_executor_exec.go#L3508-L3510)
[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#L395-L397](pkg/sql/opt/optbuilder/builder.go#L395-L397)
[pkg/sql/opt/optbuilder/select.go#L1160-L1162](pkg/sql/opt/optbuilder/select.go#L1160-L1162)
[pkg/sql/opt/optbuilder/with.go#L109-L111](pkg/sql/opt/optbuilder/with.go#L109-L111)
[pkg/sql/opt/optbuilder/select.go#L1161-L1163](pkg/sql/opt/optbuilder/select.go#L1161-L1163)
[pkg/sql/opt/optbuilder/select.go#L1209-L1211](pkg/sql/opt/optbuilder/select.go#L1209-L1211)
[pkg/sql/opt/optbuilder/select.go#L1316-L1318](pkg/sql/opt/optbuilder/select.go#L1316-L1318)
[pkg/sql/opt/optbuilder/project.go#L202-L204](pkg/sql/opt/optbuilder/project.go#L202-L204)
[pkg/sql/opt/optbuilder/scalar.go#L330-L332](pkg/sql/opt/optbuilder/scalar.go#L330-L332)
[pkg/sql/opt/optbuilder/scalar.go#L569-L571](pkg/sql/opt/optbuilder/scalar.go#L569-L571)
[pkg/sql/opt/optbuilder/scalar.go#L330-L332](pkg/sql/opt/optbuilder/scalar.go#L330-L332)
[pkg/sql/opt/optbuilder/scalar.go#L573-L575](pkg/sql/opt/optbuilder/scalar.go#L573-L575)
[bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go#L22279-L22281](bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go#L22279-L22281)
[pkg/sql/opt/norm/fold_constants_funcs.go#L728-L730](pkg/sql/opt/norm/fold_constants_funcs.go#L728-L730)
[pkg/sql/sem/eval/expr.go#L21-L23](pkg/sql/sem/eval/expr.go#L21-L23)
[bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go#L290-L292](bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go#L290-L292)
[pkg/sql/sem/eval/expr.go#L501-L503](pkg/sql/sem/eval/expr.go#L501-L503)
[pkg/sql/sem/builtins/geo_builtins.go#L5367-L5369](pkg/sql/sem/builtins/geo_builtins.go#L5367-L5369)
[pkg/geo/geomfn/linestring.go#L185-L187](pkg/geo/geomfn/linestring.go#L185-L187)
[pkg/geo/geomfn/linestring.go#L212-L214](pkg/geo/geomfn/linestring.go#L212-L214)
[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)
```
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).execStmtInOpenState at line 1178
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).dispatchToExecutionEngine at line 3079
pkg/sql/conn_executor_exec.go in pkg/sql.(*connExecutor).makeExecPlan at line 3509
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 396
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelect at line 1161
pkg/sql/opt/optbuilder/with.go in pkg/sql/opt/optbuilder.(*Builder).processWiths at line 110
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelect.func1 at line 1162
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelectStmtWithoutParens at line 1210
pkg/sql/opt/optbuilder/select.go in pkg/sql/opt/optbuilder.(*Builder).buildSelectClause at line 1317
pkg/sql/opt/optbuilder/project.go in pkg/sql/opt/optbuilder.(*Builder).buildProjectionList at line 203
pkg/sql/opt/optbuilder/scalar.go in pkg/sql/opt/optbuilder.(*Builder).buildScalar at line 331
pkg/sql/opt/optbuilder/scalar.go in pkg/sql/opt/optbuilder.(*Builder).buildFunction at line 570
pkg/sql/opt/optbuilder/scalar.go in pkg/sql/opt/optbuilder.(*Builder).buildScalar at line 331
pkg/sql/opt/optbuilder/scalar.go in pkg/sql/opt/optbuilder.(*Builder).buildFunction at line 574
bazel-out/k8-opt/bin/pkg/sql/opt/norm/factory.og.go in pkg/sql/opt/norm.(*Factory).ConstructFunction at line 22280
pkg/sql/opt/norm/fold_constants_funcs.go in pkg/sql/opt/norm.(*CustomFuncs).FoldFunction at line 729
pkg/sql/sem/eval/expr.go in pkg/sql/sem/eval.Expr at line 22
bazel-out/k8-opt/bin/pkg/sql/sem/tree/eval_expr_generated.go in pkg/sql/sem/tree.(*FuncExpr).Eval at line 291
pkg/sql/sem/eval/expr.go in pkg/sql/sem/eval.(*evaluator).EvalFuncExpr at line 502
pkg/sql/sem/builtins/geo_builtins.go in pkg/sql/sem/builtins.init.func657 at line 5368
pkg/geo/geomfn/linestring.go in pkg/geo/geomfn.SetPoint at line 186
pkg/geo/geomfn/linestring.go in pkg/geo/geomfn.setPoint at line 213
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 | start-single-node |
| Environment | v26.2.1 |
| Go Version | go1.25.5 |
| Platform | darwin arm64 |
| Distribution | CCL |
| Cockroach Release | v26.2.1 |
| Cockroach SHA | b398a6e1fde74a915daf8e9841303c8ee39c2abe |
| # of CPUs | 16 |
| # of Goroutines | 600 |
Jira issue: CRDB-67402
Contributor guide
Research direction
Start at pkg/geo/geomfn/linestring.go, especially SetPoint at line 186 and setPoint at line 213, then trace the reported st_setpoint SQL call. Reproduce the panic from the reported query and add regression coverage; done means the input no longer causes an index-out-of-range panic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, sql
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100