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...
- 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
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