Skip to content

sql: prepared update query crashes cockroach node #14473

@rjnn

Description

@rjnn

I'm getting a crash running the OLTPBench TPCC workload. I'm still trying to narrow down which query is causing this, but here's a stack trace of the cockroach node crashing:

panic: makeInternalPlanner called with a transaction without timestamps [recovered]
        panic: makeInternalPlanner called with a transaction without timestamps [recovered]
        panic: makeInternalPlanner called with a transaction without timestamps

goroutine 3523884 [running]:
github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).Recover(0xc4201ce0a0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:199 +0x94
panic(0x5409b40, 0xc42acd0930)
        /usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*v3Conn).serve.func1(0xc4236c0c00, 0x8085980, 0xc4244b4630)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/v3.go:348 +0x74
panic(0x5409b40, 0xc42acd0930)
        /usr/local/go/src/runtime/panic.go:489 +0x2cf
github.com/cockroachdb/cockroach/pkg/sql.makeInternalPlanner(0x563de5a, 0xd, 0xc42665c3c0, 0x5631c6f, 0x4, 0xc4200ac3d0, 0x643d240)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/planner.go:114 +0x70c
github.com/cockroachdb/cockroach/pkg/sql.LeaseStore.Acquire(0x5fc70e0, 0xc42014d810, 0xc420428ec0, 0x3ff0000000000000, 0xc420428ec0, 0xc4200ac000, 0x0, 0x0, 0x0, 0xc4200ac3d0, ...)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/lease.go:157 +0x2d8
github.com/cockroachdb/cockroach/pkg/sql.(*tableState).acquireNodeLease(0xc422008aa0, 0x8085980, 0xc42406b320, 0xc42665c3c0, 0xc400000000, 0xc4203e6480, 0x0, 0xc400000000, 0x0, 0x0, ...)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/lease.go:725 +0x1d1
github.com/cockroachdb/cockroach/pkg/sql.(*tableState).acquireFromStoreLocked(0xc422008aa0, 0x8085980, 0xc42406b320, 0xc42665c3c0, 0x0, 0xc4203e6480, 0xc42b99baf0, 0xc424e780a0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/lease.go:619 +0xa8
github.com/cockroachdb/cockroach/pkg/sql.(*tableState).acquire(0xc422008aa0, 0x8085980, 0xc42406b320, 0xc42665c3c0, 0x0, 0xc4203e6480, 0x0, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/lease.go:577 +0x12e
github.com/cockroachdb/cockroach/pkg/sql.(*LeaseManager).Acquire(0xc4203e6480, 0x8085980, 0xc42406b320, 0xc42665c3c0, 0x6f, 0xc420948dc0, 0x400c8a3, 0xc42b99bcd0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/lease.go:1146 +0x86
github.com/cockroachdb/cockroach/pkg/sql.(*planner).getTableLeaseByID(0xc425fea000, 0x8085980, 0xc42406b320, 0xc40000006f, 0xc420948dc0, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/table.go:379 +0x101
github.com/cockroachdb/cockroach/pkg/sql.(*planner).fillFKTableMap(0xc425fea000, 0x8085980, 0xc42406b320, 0xc423a5ae40, 0x14b0791e6e1b242a, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/planner.go:253 +0xb8
github.com/cockroachdb/cockroach/pkg/sql.(*planner).Update(0xc425fea000, 0x8085980, 0xc42406b320, 0xc425a84e00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/update.go:177 +0x515
github.com/cockroachdb/cockroach/pkg/sql.(*planner).prepare(0xc425fea000, 0x8085980, 0xc42406b320, 0x5fdfbe0, 0xc425a84e00, 0x0, 0x0, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/plan.go:418 +0x559
github.com/cockroachdb/cockroach/pkg/sql.(*Executor).Prepare(0xc4202aa680, 0xc423cf1aff, 0x93, 0xc42085bb00, 0xc423a5aa80, 0x0, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/executor.go:466 +0x637
github.com/cockroachdb/cockroach/pkg/sql.PreparedStatements.New(0xc42085bb00, 0xc4244b46f0, 0xc4202aa680, 0xc423cf1afe, 0x0, 0xc423cf1aff, 0x93, 0xc423a5aa80, 0xa7, 0x0, ...)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/prepare.go:76 +0x63
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*v3Conn).handleParse(0xc4236c0c00, 0xc4236c0c28, 0xc426b62c00, 0x50)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/v3.go:546 +0x432
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*v3Conn).serve(0xc4236c0c00, 0x8085980, 0xc4244b4630, 0xc426463e70, 0x5400, 0xc420338310, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/v3.go:434 +0x8f0
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).ServeConn(0xc4203381c0, 0x8661028, 0xc4255bea80, 0x5fe84c0, 0xc42a936820, 0x0, 0x0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/server.go:415 +0x927
github.com/cockroachdb/cockroach/pkg/server.(*Server).Start.func9.1(0x5fe84c0, 0xc42a936820)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/server/server.go:587 +0x153
github.com/cockroachdb/cockroach/pkg/util/netutil.(*Server).ServeWith.func1(0xc4201ce0a0, 0xc420154058, 0x5fe84c0, 0xc42a936820, 0xc42029c7b0)
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/util/netutil/net.go:136 +0x95
created by github.com/cockroachdb/cockroach/pkg/util/netutil.(*Server).ServeWith
        /Users/arjun/goworkspace/src/github.com/cockroachdb/cockroach/pkg/util/netutil/net.go:138 +0x239

This is a JDBC created PreparedStatement execution, and it's not always reliably reproducible. I think it is dependent on some particular values being set.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions