-
Notifications
You must be signed in to change notification settings - Fork 4.1k
sql: panic during fast path uniqueness check duplicate key violation #115377
Copy link
Copy link
Closed
Labels
C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.GA-blockerO-qaT-sql-queriesSQL Queries TeamSQL Queries Teambranch-release-23.2Used to mark GA and release blockers, technical advisories, and bugs for 23.2Used to mark GA and release blockers, technical advisories, and bugs for 23.2v23.2.1
Description
The following test causes a panic:
# LogicTest: multiregion-9node-3region-3azs !metamorphic-batch-sizes
statement ok
SET CLUSTER SETTING kv.closed_timestamp.side_transport_interval = '10ms';
statement ok
SET CLUSTER SETTING kv.closed_timestamp.target_duration = '10ms';
statement ok
CREATE DATABASE multi_region_test_db PRIMARY REGION "ca-central-1" REGIONS "ap-southeast-2", "us-east-1" SURVIVE REGION FAILURE;
statement ok
USE multi_region_test_db
statement ok
CREATE TABLE t (
k INT PRIMARY KEY,
a INT,
b INT,
UNIQUE (a, b)
) LOCALITY REGIONAL BY ROW
statement ok
INSERT INTO t VALUES (1, 10, 100)
query T
EXPLAIN
INSERT INTO t VALUES (2, 10, 100)
----
distribution: local
vectorized: true
·
• insert fast path
into: t(k, a, b, crdb_region)
auto commit
uniqueness check: t@t_pkey
uniqueness check: t@t_a_b_key
size: 5 columns, 1 row
statement ok
INSERT INTO t VALUES (2, 11, 100)
# ‼️The following statement causes a panic.
statement ok
INSERT INTO t VALUES (2, 10, 101)
The stacktrace:
* ERROR: a SQL panic has occurred while executing the following statement:
* INSERT INTO t VALUES (2, 10, 101)
*
*
* ERROR: a panic has occurred!
* runtime error: index out of range [2] with length 2
* (1) attached stack trace
* -- stack trace:
* | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:949
* | [...repeated from below...]
* Wraps: (2) while executing: INSERT INTO _ VALUES (_, _, __more1_10__)
* Wraps: (3) attached stack trace
* -- stack trace:
* | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:949
* | runtime.gopanic
* | GOROOT/src/runtime/panic.go:914
* | github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1
* | github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58
* | runtime.gopanic
* | GOROOT/src/runtime/panic.go:914
* | runtime.goPanicIndex
* | GOROOT/src/runtime/panic.go:114
* | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.mkFastPathUniqueCheckErr
* | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:890
* | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder.(*Builder).tryBuildFastPathInsert.func1
* | github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:201
* | github.com/cockroachdb/cockroach/pkg/sql.(*insertFastPathCheck).errorForRow
* | github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:151
* | github.com/cockroachdb/cockroach/pkg/sql.(*insertFastPathNode).runUniqChecks
* | github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:317
* | github.com/cockroachdb/cockroach/pkg/sql.(*insertFastPathNode).BatchedNext
* | github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:496
* | github.com/cockroachdb/cockroach/pkg/sql.(*rowCountNode).startExec
* | github.com/cockroachdb/cockroach/pkg/sql/plan_batch.go:173
* | github.com/cockroachdb/cockroach/pkg/sql.startExec.func2
* | github.com/cockroachdb/cockroach/pkg/sql/plan.go:520
* | github.com/cockroachdb/cockroach/pkg/sql.(*planVisitor).visitInternal.func1
* | github.com/cockroachdb/cockroach/pkg/sql/walk.go:112
* | github.com/cockroachdb/cockroach/pkg/sql.(*planVisitor).visitInternal
* | github.com/cockroachdb/cockroach/pkg/sql/walk.go:299
* | github.com/cockroachdb/cockroach/pkg/sql.(*planVisitor).visit
* | github.com/cockroachdb/cockroach/pkg/sql/walk.go:79
* | github.com/cockroachdb/cockroach/pkg/sql.walkPlan
* | github.com/cockroachdb/cockroach/pkg/sql/walk.go:43
* | github.com/cockroachdb/cockroach/pkg/sql.startExec
* | github.com/cockroachdb/cockroach/pkg/sql/plan.go:523
* | github.com/cockroachdb/cockroach/pkg/sql.(*planNodeToRowSource).Start
* | github.com/cockroachdb/cockroach/pkg/sql/plan_node_to_row_source.go:175
* | github.com/cockroachdb/cockroach/pkg/sql/colflow.(*FlowCoordinator).Start.func1
* | github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:120
* | github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError
* | github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92
* | github.com/cockroachdb/cockroach/pkg/sql/colflow.(*FlowCoordinator).Start
* | github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:119
* | github.com/cockroachdb/cockroach/pkg/sql/execinfra.(*ProcessorBaseNoHelper).Run
* | github.com/cockroachdb/cockroach/pkg/sql/execinfra/processorsbase.go:725
* | github.com/cockroachdb/cockroach/pkg/sql/flowinfra.(*FlowBase).Run
* | github.com/cockroachdb/cockroach/pkg/sql/flowinfra/flow.go:579
* | github.com/cockroachdb/cockroach/pkg/sql/colflow.(*vectorizedFlow).Run
* | github.com/cockroachdb/cockroach/pkg/sql/colflow/vectorized_flow.go:305
* | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).Run
* | github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:910
* | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRun
* | github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1957
* | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRunAll.func3
* | github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1672
* | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRunAll
* | github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1675
* | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithDistSQLEngine
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2358
* | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).dispatchToExecutionEngine
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1898
* | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1108
* | github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt.func1
* | github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:146
* Wraps: (4) runtime error: index out of range [2] with length 2
* Error types: (1) *withstack.withStack (2) *safedetails.withSafeDetails (3) *withstack.withStack (4) runtime.boundsError
*
panic: runtime error: index out of range [2] with length 2 [recovered]
panic: runtime error: index out of range [2] with length 2 [recovered]
panic: runtime error: index out of range [2] with length 2
Jira issue: CRDB-34002
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.GA-blockerO-qaT-sql-queriesSQL Queries TeamSQL Queries Teambranch-release-23.2Used to mark GA and release blockers, technical advisories, and bugs for 23.2Used to mark GA and release blockers, technical advisories, and bugs for 23.2v23.2.1
Type
Projects
Status
Done