cockroachdb / cockroachdb/cockroach

Sentry: panic.go:791: interface conversion: tree.Datum is tree.dNull, not *tree.DString (1) attached stack trace -- stack trace: | runtime.gopanic | GOROOT/src/runtime/panic.go:791 | runtime....

Open
#173,434 1 comment 0 reactions 0 assignees View on GitHub
A-jobs branch-release-25.2 C-bug O-sentry P-2 T-jobs X-blathers-triaged
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/7676170668/?referrer=webhooks_plugin](https://cockroach-labs.sentry.io/issues/7676170668/?referrer=webhooks_plugin)

Panic Message:

```
panic.go:791: interface conversion: tree.Datum is tree.dNull, not *tree.DString
(1) attached stack trace
-- stack trace:
| runtime.gopanic
| GOROOT/src/runtime/panic.go:791
| runtime.panicdottypeE
| GOROOT/src/runtime/iface.go:275
| runtime.panicdottypeI
| GOROOT/src/runtime/iface.go:285
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).Start.func3.(*Registry).servePauseAndCancelRequests.1
| pkg/jobs/adopt.go:502
| github.com/cockroachdb/cockroach/pkg/sql.(*internalDBWithOverrides).Txn.func1
| pkg/sql/internal.go:2126
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).Txn.func1
| pkg/sql/internal.go:1966
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).txn.func4
| pkg/sql/internal.go:2053
| github.com/cockroachdb/cockroach/pkg/kv.(*Txn).exec
| pkg/kv/txn.go:1127
| github.com/cockroachdb/cockroach/pkg/kv.runTxn
| pkg/kv/db.go:1075
| github.com/cockroachdb/cockroach/pkg/kv.(*DB).TxnWithAdmissionControl
| pkg/kv/db.go:1038
| github.com/cockroachdb/cockroach/pkg/kv.(*DB).Txn
| pkg/kv/db.go:1013
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).txn
| pkg/sql/internal.go:2040
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).Txn
| pkg/sql/internal.go:1967
| github.com/cockroachdb/cockroach/pkg/sql.(*internalDBWithOverrides).Txn
| pkg/sql/internal.go:2122
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).servePauseAndCancelRequests
| pkg/jobs/adopt.go:482
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).Start.func3
| pkg/jobs/registry.go:985
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).Start.func4
| pkg/jobs/registry.go:992
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).withSession
| pkg/jobs/registry.go:940
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).Start.(*Registry).Start.func1.func11
| pkg/jobs/registry.go:956
| github.com/cockroachdb/cockroach/pkg/jobs.(*Registry).Start.func8
| pkg/jobs/registry.go:1074
| github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2
| pkg/util/stop/stopper.go:507
| runtime.goexit
| src/runtime/asm_amd64.s:1700
Wraps: (2) interface conversion: tree.Datum is tree.dNull, not *tree.DString
Error types: (1) *withstack.withStack (2) *runtime.TypeAssertionError
-- report composition:
*runtime.TypeAssertionError
panic.go:791: *withstack.withStack (top exception)
```

Stacktrace (expand for inline code snippets):

[src/runtime/asm_amd64.s#L1699-L1701](src/runtime/asm_amd64.s#L1699-L1701)
[pkg/util/stop/stopper.go#L506-L508](pkg/util/stop/stopper.go#L506-L508)
[pkg/jobs/registry.go#L1073-L1075](pkg/jobs/registry.go#L1073-L1075)
[pkg/jobs/registry.go#L955-L957](pkg/jobs/registry.go#L955-L957)
[pkg/jobs/registry.go#L939-L941](pkg/jobs/registry.go#L939-L941)
[pkg/jobs/registry.go#L991-L993](pkg/jobs/registry.go#L991-L993)
[pkg/jobs/registry.go#L984-L986](pkg/jobs/registry.go#L984-L986)
[pkg/jobs/adopt.go#L481-L483](pkg/jobs/adopt.go#L481-L483)
[pkg/sql/internal.go#L2121-L2123](pkg/sql/internal.go#L2121-L2123)
[pkg/sql/internal.go#L1966-L1968](pkg/sql/internal.go#L1966-L1968)
[pkg/sql/internal.go#L2039-L2041](pkg/sql/internal.go#L2039-L2041)
[pkg/kv/db.go#L1012-L1014](pkg/kv/db.go#L1012-L1014)
[pkg/kv/db.go#L1037-L1039](pkg/kv/db.go#L1037-L1039)
[pkg/kv/db.go#L1074-L1076](pkg/kv/db.go#L1074-L1076)
[pkg/kv/txn.go#L1126-L1128](pkg/kv/txn.go#L1126-L1128)
[pkg/sql/internal.go#L2052-L2054](pkg/sql/internal.go#L2052-L2054)
[pkg/sql/internal.go#L1965-L1967](pkg/sql/internal.go#L1965-L1967)
[pkg/sql/internal.go#L2125-L2127](pkg/sql/internal.go#L2125-L2127)
[pkg/jobs/adopt.go#L501-L503](pkg/jobs/adopt.go#L501-L503)
[GOROOT/src/runtime/iface.go#L284-L286](GOROOT/src/runtime/iface.go#L284-L286)
[GOROOT/src/runtime/iface.go#L274-L276](GOROOT/src/runtime/iface.go#L274-L276)
[GOROOT/src/runtime/panic.go#L790-L792](GOROOT/src/runtime/panic.go#L790-L792)

```
src/runtime/asm_amd64.s in runtime.goexit at line 1700
pkg/util/stop/stopper.go in pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2 at line 507
pkg/jobs/registry.go in pkg/jobs.(*Registry).Start.func8 at line 1074
pkg/jobs/registry.go in pkg/jobs.(*Registry).Start.(*Registry).Start.func1.func11 at line 956
pkg/jobs/registry.go in pkg/jobs.(*Registry).withSession at line 940
pkg/jobs/registry.go in pkg/jobs.(*Registry).Start.func4 at line 992
pkg/jobs/registry.go in pkg/jobs.(*Registry).Start.func3 at line 985
pkg/jobs/adopt.go in pkg/jobs.(*Registry).servePauseAndCancelRequests at line 482
pkg/sql/internal.go in pkg/sql.(*internalDBWithOverrides).Txn at line 2122
pkg/sql/internal.go in pkg/sql.(*InternalDB).Txn at line 1967
pkg/sql/internal.go in pkg/sql.(*InternalDB).txn at line 2040
pkg/kv/db.go in pkg/kv.(*DB).Txn at line 1013
pkg/kv/db.go in pkg/kv.(*DB).TxnWithAdmissionControl at line 1038
pkg/kv/db.go in pkg/kv.runTxn at line 1075
pkg/kv/txn.go in pkg/kv.(*Txn).exec at line 1127
pkg/sql/internal.go in pkg/sql.(*InternalDB).txn.func4 at line 2053
pkg/sql/internal.go in pkg/sql.(*InternalDB).Txn.func1 at line 1966
pkg/sql/internal.go in pkg/sql.(*internalDBWithOverrides).Txn.func1 at line 2126
pkg/jobs/adopt.go in pkg/jobs.(*Registry).Start.func3.(*Registry).servePauseAndCancelRequests.1 at line 502
GOROOT/src/runtime/iface.go in runtime.panicdottypeI at line 285
GOROOT/src/runtime/iface.go in runtime.panicdottypeE at line 275
GOROOT/src/runtime/panic.go in runtime.gopanic at line 791
```

### Tags

| Tag | Value |
| --- | --- |
| Command | server |
| Environment | v25.2.20 |
| Go Version | go1.23.12 X:nocoverageredesign |
| Platform | linux amd64 |
| Distribution | CCL |
| Cockroach Release | v25.2.20 |
| Cockroach SHA | 38afacf970e63c9387d47f7555c2bb02b4d5cb02 |
| # of CPUs | 8 |
| # of Goroutines | 1561 |

Jira issue: CRDB-66753

Contributor guide

Open the contributing guide

Research direction

Start in pkg/jobs/adopt.go around lines 482 and 502, where Registry.servePauseAndCancelRequests runs inside the job registry flow shown in pkg/jobs/registry.go. Trace the datum handling that reaches the reported type assertion and verify the pause or cancel request path completes without panicking when the value is tree.dNull.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, 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.