cockroachdb / cockroachdb/cockroach

Sentry: conn_executor.go:1133: panic: × (1) attached stack trace -- stack trace: | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1 | pkg/sql/conn_executor.go:1133 | [...re...

Open
#174,102 1 comment 0 reactions 0 assignees View on GitHub
branch-release-26.2 C-bug O-sentry T-specialized-indexing
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/7695139734/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7695139734/?referrer=webhooks_plugin)

Panic Message:

```
conn_executor.go:1133: panic: ×
(1) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
| pkg/sql/conn_executor.go:1133
| [...repeated from below...]
Wraps: (2) while executing: SELECT st_asgeojson(_, _, _)
Wraps: (3) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
| pkg/sql/conn_executor.go:1133
| runtime.gopanic
| GOROOT/src/runtime/panic.go:783
| github.com/cockroachdb/cockroach/pkg/util/errorutil.MaybeCatchPanic
| pkg/util/errorutil/catch.go:44
| runtime.gopanic
| GOROOT/src/runtime/panic.go:783
| github.com/twpayne/go-geom.(*GeometryCollection).FlatCoords
| external/com_github_twpayne_go_geom/geometrycollection.go:90
| github.com/twpayne/go-geom.(*Bounds).Extend
| external/com_github_twpayne_go_geom/bounds.go:37
| github.com/twpayne/go-geom.(*GeometryCollection).Bounds
| external/com_github_twpayne_go_geom/geometrycollection.go:71
| github.com/cockroachdb/cockroach/pkg/geo.SpatialObjectToGeoJSON.EncodeGeometryWithBBox.func1
| external/com_github_twpayne_go_geom/encoding/geojson/geojson.go:288
| github.com/twpayne/go-geom/encoding/geojson.Encode
| external/com_github_twpayne_go_geom/encoding/geojson/geojson.go:343
| github.com/twpayne/go-geom/encoding/geojson.Marshal
| external/com_github_twpayne_go_geom/encoding/geojson/geojson.go:487
| github.com/cockroachdb/cockroach/pkg/geo.SpatialObjectToGeoJSON
| pkg/geo/encode.go:155
| github.com/cockroachdb/cockroach/pkg/sql/sem/builtins.init.func524
| pkg/sql/sem/builtins/geo_builtins.go:1925
| 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).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
Wraps: (4) panic: ×
Error types: (1) *withstack.withStack (2) *safedetails.withSafeDetails (3) *withstack.withStack (4) *errutil.leafError
-- report composition:
*errutil.leafError: panic: ×
conn_executor.go:1133: *withstack.withStack (top exception)
*safedetails.withSafeDetails: while executing: SELECT st_asgeojson(_, _, _)
conn_executor.go:1133: *withstack.withStack (1)
(check the extra data payloads)
```

Stacktrace (expand for inline code snippets):

[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#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#L1924-L1926](pkg/sql/sem/builtins/geo_builtins.go#L1924-L1926)
[pkg/geo/encode.go#L154-L156](pkg/geo/encode.go#L154-L156)
[external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L486-L488](external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L486-L488)
[external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L342-L344](external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L342-L344)
[external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L287-L289](external/com_github_twpayne_go_geom/encoding/geojson/geojson.go#L287-L289)
[external/com_github_twpayne_go_geom/geometrycollection.go#L70-L72](external/com_github_twpayne_go_geom/geometrycollection.go#L70-L72)
[external/com_github_twpayne_go_geom/bounds.go#L36-L38](external/com_github_twpayne_go_geom/bounds.go#L36-L38)
[external/com_github_twpayne_go_geom/geometrycollection.go#L89-L91](external/com_github_twpayne_go_geom/geometrycollection.go#L89-L91)
[GOROOT/src/runtime/panic.go#L782-L784](GOROOT/src/runtime/panic.go#L782-L784)
[pkg/util/errorutil/catch.go#L43-L45](pkg/util/errorutil/catch.go#L43-L45)
[GOROOT/src/runtime/panic.go#L782-L784](GOROOT/src/runtime/panic.go#L782-L784)
[pkg/sql/conn_executor.go#L1132-L1134](pkg/sql/conn_executor.go#L1132-L1134)

```
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 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.func524 at line 1925
pkg/geo/encode.go in pkg/geo.SpatialObjectToGeoJSON at line 155
external/com_github_twpayne_go_geom/encoding/geojson/geojson.go in github.com/twpayne/go-geom/encoding/geojson.Marshal at line 487
external/com_github_twpayne_go_geom/encoding/geojson/geojson.go in github.com/twpayne/go-geom/encoding/geojson.Encode at line 343
external/com_github_twpayne_go_geom/encoding/geojson/geojson.go in pkg/geo.SpatialObjectToGeoJSON.EncodeGeometryWithBBox.func1 at line 288
external/com_github_twpayne_go_geom/geometrycollection.go in github.com/twpayne/go-geom.(*GeometryCollection).Bounds at line 71
external/com_github_twpayne_go_geom/bounds.go in github.com/twpayne/go-geom.(*Bounds).Extend at line 37
external/com_github_twpayne_go_geom/geometrycollection.go in github.com/twpayne/go-geom.(*GeometryCollection).FlatCoords at line 90
GOROOT/src/runtime/panic.go in runtime.gopanic at line 783
pkg/util/errorutil/catch.go in pkg/util/errorutil.MaybeCatchPanic at line 44
GOROOT/src/runtime/panic.go in runtime.gopanic at line 783
pkg/sql/conn_executor.go in pkg/sql.(*Server).ServeConn.func1 at line 1133
```

### 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 | 597 |

Jira issue: CRDB-67401

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported SELECT st_asgeojson(_, _, _) failure, then read pkg/geo/encode.go around line 155 and the referenced go-geom GeometryCollection, Bounds, and GeoJSON encoding paths. Trace how the geometry reaches GeometryCollection.FlatCoords and define done as the query no longer panicking for the reported input.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, sql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.