Skip to content

sql: internal error during fast path uniqueness check duplicate key violation #115378

@mgartner

Description

@mgartner

The test case below causes an internal error:

# 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,
  c INT,
  UNIQUE (a, b),
  UNIQUE (a, c)
) LOCALITY REGIONAL BY ROW

statement ok
INSERT INTO t VALUES (1, 10, 100, 1000)

query T
EXPLAIN
INSERT INTO t VALUES (2, 10, 100, 1000)
----
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

# ‼️This causes an internal error.
statement error duplicate key value violates unique constraint
INSERT INTO t VALUES (2, 10, 100, 1000)

The error:

pq: internal error: insert fast path failed uniqueness check, but could not find unique columns for row, ['ap-southeast-2' 10 100]
HINT: You have encountered an unexpected error.
Please check the public issue tracker to check whether this problem is
already tracked. If you cannot find it there, please report the error
with details by creating a new issue.
If you would rather not post publicly, please contact us directly
using the support form.
We appreciate your feedback.
DETAIL: stack trace:
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:898: mkFastPathUniqueCheckErr()
github.com/cockroachdb/cockroach/pkg/sql/opt/exec/execbuilder/mutation.go:201: func1()
github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:151: errorForRow()
github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:317: runUniqChecks()
github.com/cockroachdb/cockroach/pkg/sql/insert_fast_path.go:496: BatchedNext()
github.com/cockroachdb/cockroach/pkg/sql/plan_batch.go:173: startExec()
github.com/cockroachdb/cockroach/pkg/sql/plan.go:520: func2()
github.com/cockroachdb/cockroach/pkg/sql/walk.go:112: func1()
github.com/cockroachdb/cockroach/pkg/sql/walk.go:299: visitInternal()
github.com/cockroachdb/cockroach/pkg/sql/walk.go:79: visit()
github.com/cockroachdb/cockroach/pkg/sql/walk.go:43: walkPlan()
github.com/cockroachdb/cockroach/pkg/sql/plan.go:523: startExec()
github.com/cockroachdb/cockroach/pkg/sql/plan_node_to_row_source.go:175: Start()
github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:120: func1()
github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92: CatchVectorizedRuntimeError()
github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:119: Start()
github.com/cockroachdb/cockroach/pkg/sql/execinfra/processorsbase.go:725: Run()
github.com/cockroachdb/cockroach/pkg/sql/flowinfra/flow.go:579: Run()
github.com/cockroachdb/cockroach/pkg/sql/colflow/vectorized_flow.go:305: Run()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:910: Run()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1957: PlanAndRun()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1672: func3()
github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1675: PlanAndRunAll()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2358: execWithDistSQLEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1898: dispatchToExecutionEngine()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1108: execStmtInOpenState()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:146: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:3333: execWithProfiling()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:145: execStmt()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2225: func1()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2230: execCmd()
github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2147: run()

Jira issue: CRDB-34003

Metadata

Metadata

Assignees

Labels

C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)GA-blockerO-qaT-sql-queriesSQL Queries Teambranch-release-23.2Used to mark GA and release blockers, technical advisories, and bugs for 23.2v23.2.1

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions