Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql/tests: TestRandomSyntaxSQLSmith failed [NPE in applyJoinNode] #111327

Closed
cockroach-teamcity opened this issue Sep 27, 2023 · 1 comment · Fixed by #111713
Closed

sql/tests: TestRandomSyntaxSQLSmith failed [NPE in applyJoinNode] #111327

cockroach-teamcity opened this issue Sep 27, 2023 · 1 comment · Fixed by #111713
Assignees
Labels
branch-master Failures on the master branch. C-test-failure Broken test (automatically or manually discovered). O-robot Originated from a bot. O-rsg Random Syntax Generator release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. T-sql-queries SQL Queries Team X-noreuse Prevent automatic commenting from CI test failures
Milestone

Comments

@cockroach-teamcity
Copy link
Member

cockroach-teamcity commented Sep 27, 2023

sql/tests.TestRandomSyntaxSQLSmith failed with artifacts on master @ 4b2badd7bc6c11a7646e66b131f5bcaf8328916a:

Random syntax error:

    rsg_test.go:895: Crash detected: server panic: driver: bad connection

Query:

        SELECT
        	tab378984.crdb_internal_mvcc_timestamp AS "%pcol857759",
        	'48 years 7 mons 894 days 13:39:26.674765':::INTERVAL AS col857760,
        	tab378983.tableoid AS "coL857761",
        	tab378983.crdb_internal_mvcc_timestamp AS col857762,
        	(SELECT (-4999644074744333745):::INT8 AS "co""l857763" LIMIT 1:::INT8) AS col857764,
        	tab378983._inet AS col857765,
        	'2011-06-28 16:37:44.000635+00':::TIMESTAMPTZ AS col857766,
        	tab378984._bool AS col857767,
        	tab378983.tableoid AS col857768,
        	tab378984._timestamptz AS col857769,
        	NULL AS "Co😽l857770",
        	tab378984._string AS "c)ol857771",
        	NULL AS col857772,
        	tab378983._int4 AS c🙃ol857773,
        	tab378984._interval AS " col857774",
        	tab378984.crdb_internal_mvcc_timestamp AS "c%69ol'857775"
        FROM
        	defaultdb.public.seed@seed__int8__float8__date_idx AS tab378983, defaultdb.public.seed@[0] AS tab378984
        WHERE
        	(true AND ('9E82DF40/BC8A8379':::PG_LSN::PG_LSN NOT IN (SELECT pg_lsn(tab378984._string::STRING)::PG_LSN::PG_LSN AS col857758 FROM defaultdb.public.seed@[0] AS "%ptAb%v378985" WHERE "%ptAb%v378985"._bool LIMIT 22:::INT8)))
        ORDER BY
        	tab378983._timestamptz ASC NULLS FIRST
        LIMIT
        	78:::INT8;

Schema:

    rsg_test.go:704: To reproduce, use schema:
    rsg_test.go:706: SET sql_safe_updates = false;;
    rsg_test.go:706: SET CLUSTER SETTING sql.stats.automatic_collection.enabled = false;;
    rsg_test.go:706: SET CLUSTER SETTING sql.stats.histogram_collection.enabled = false;;
    rsg_test.go:706: CREATE TABLE table1 (col1_0 INT4, col1_1 PG_LSN NOT NULL, """col1_2" CHAR NOT NULL, col1_3 FLOAT8 NOT NULL, PRIMARY KEY (col1_1 ASC, """col1_2", col1_3 ASC), UNIQUE (col1_3 DESC, (col1_0 + 1718159908:::INT8) ASC) WHERE table1.col1_3 = '+Inf':::FLOAT8, UNIQUE ((col1_0 + 1656506633:::INT8) DESC, col1_0) WHERE table1."""col1_2" <= '':::STRING, INDEX (lower("""col1_2") ASC) STORING (col1_0) NOT VISIBLE, INDEX (col1_0, col1_1 DESC, """col1_2", lower("""col1_2") ASC) VISIBILITY 0.80, UNIQUE (col1_3 ASC, col1_0 ASC, """col1_2") WHERE table1."""col1_2" != '"':::STRING, UNIQUE (col1_0 ASC, """col1_2" ASC, col1_3, col1_1 DESC) WHERE ((table1.col1_0 = 1:::INT8) OR (table1.col1_3 != (-1.0):::FLOAT8)) AND (table1."""col1_2" > e'\U00002603':::STRING));
    rsg_test.go:706: ALTER TABLE table1 INJECT STATISTICS e'[{"avg_size": 21, "columns": ["col1_0"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 93126895713, "histo_buckets": [{"distinct_range": 0, "num_eq": 80, "num_range": 0, "upper_bound": "-1760570338"}, {"distinct_range": 19584145439.95768, "num_eq": 8598521184409481157, "num_range": 40000000000, "upper_bound": "-1"}, {"distinct_range": 0, "num_eq": 6952282162260467974, "num_range": 2147040682226951462, "upper_bound": "320165031"}, {"distinct_range": 100000000000, "num_eq": 3728072327274856069, "num_range": 100000000000, "upper_bound": "338991470"}, {"distinct_range": 70000000000, "num_eq": 400000, "num_range": 70000000000, "upper_bound": "1266827709"}, {"distinct_range": 2376280076838793700, "num_eq": 7000, "num_range": 2545411094513238110, "upper_bound": "1605341739"}], "histo_col_type": "INT4", "name": "__auto__", "null_count": 98551908539, "row_count": 100000000000}, {"avg_size": 13, "columns": ["col1_1"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 8817961525, "histo_col_type": "PG_LSN", "name": "__auto__", "null_count": 0, "row_count": 100000000000}, {"avg_size": 7, "columns": ["\\"\\"\\"col1_2\\""], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 60511047609, "histo_col_type": "", "name": "__auto__", "null_count": 0, "row_count": 100000000000}, {"avg_size": 6, "columns": ["col1_3"], "created_at": "2000-01-01 00:00:00+00:00", "distinct_count": 7321223047, "histo_buckets": [{"distinct_range": 0, "num_eq": 8468293078890346225, "num_range": 0, "upper_bound": "-0.8111565926847524"}, {"distinct_range": 0, "num_eq": 6999228595962647056, "num_range": 1000, "upper_bound": "-0.2258070473470397"}, {"distinct_range": 0, "num_eq": 3000000000, "num_range": 30, "upper_bound": "-0.1557861596297135"}, {"distinct_range": 4040.509921801615, "num_eq": 8000, "num_range": 6000, "upper_bound": "1.401298464324817e-45"}], "histo_col_type": "FLOAT8", "name": "__auto__", "null_count": 0, "row_count": 100000000000}]':::JSONB;
    rsg_test.go:706: CREATE TYPE rand_typ_0 AS ENUM ('dtlbs');
    rsg_test.go:706: CREATE TYPE rand_typ_1 AS ENUM ('ttvhur', 'kjqsy', 'w', 'roehgu', 'ikwibk');
    rsg_test.go:706: SET sql_safe_updates = false;;
    rsg_test.go:706: 
        BEGIN; CREATE TYPE greeting AS ENUM ('hello', 'howdy', 'hi', 'good day', 'morning'); COMMIT;
        BEGIN;
        CREATE TABLE IF NOT EXISTS seed AS
        	SELECT
        		g::INT2 AS _int2,
        		g::INT4 AS _int4,
        		g::INT8 AS _int8,
        		g::FLOAT4 AS _float4,
        		g::FLOAT8 AS _float8,
        		'2001-01-01'::DATE + g AS _date,
        		'2001-01-01'::TIMESTAMP + g * '1 day'::INTERVAL AS _timestamp,
        		'2001-01-01'::TIMESTAMPTZ + g * '1 day'::INTERVAL AS _timestamptz,
        		g * '1 day'::INTERVAL AS _interval,
        		g % 2 = 1 AS _bool,
        		g::DECIMAL AS _decimal,
        		g::STRING AS _string,
        		g::STRING::BYTES AS _bytes,
        		substring('00000000-0000-0000-0000-' || g::STRING || '00000000000', 1, 36)::UUID AS _uuid,
        		'0.0.0.0'::INET + g AS _inet,
        		g::STRING::JSONB AS _jsonb,
        		enum_range('hello'::greeting)[g] as _enum
        	FROM
        		generate_series(1, 5) AS g;
        COMMIT;
        
        INSERT INTO seed DEFAULT VALUES;
        CREATE INDEX on seed (_int8, _float8, _date);
        CREATE INVERTED INDEX on seed (_jsonb);
        ;
    rsg_test.go:706: ALTER TABLE seed SPLIT AT VALUES (5638265504913574179);
    rsg_test.go:706: ALTER TABLE seed SCATTER;
    rsg_test.go:708: 
    rsg_test.go:709: -- test log scope end --
--- FAIL: TestRandomSyntaxSQLSmith (370.88s)
test logs left over in: /artifacts/tmp/_tmp/d437d2c847dfedbc4972f231c3331c8e/logTestRandomSyntaxSQLSmith2630168632
Help

See also: How To Investigate a Go Test Failure (internal)

/cc @cockroachdb/sql-foundations

This test on roachdash | Improve this report!

Jira issue: CRDB-31858

@cockroach-teamcity cockroach-teamcity added branch-master Failures on the master branch. C-test-failure Broken test (automatically or manually discovered). O-robot Originated from a bot. release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) labels Sep 27, 2023
@cockroach-teamcity cockroach-teamcity added this to the 23.2 milestone Sep 27, 2023
@rafiss
Copy link
Collaborator

rafiss commented Oct 2, 2023

repro:

        BEGIN; CREATE TYPE greeting AS ENUM ('hello', 'howdy', 'hi', 'good day', 'morning'); COMMIT;
        BEGIN;
        CREATE TABLE IF NOT EXISTS seed AS
                SELECT
                        g::INT2 AS _int2,
                        g::INT4 AS _int4,
                        g::INT8 AS _int8,
                        g::FLOAT4 AS _float4,
                        g::FLOAT8 AS _float8,
                        '2001-01-01'::DATE + g AS _date,
                        '2001-01-01'::TIMESTAMP + g * '1 day'::INTERVAL AS _timestamp,
                        '2001-01-01'::TIMESTAMPTZ + g * '1 day'::INTERVAL AS _timestamptz,
                        g * '1 day'::INTERVAL AS _interval,
                        g % 2 = 1 AS _bool,
                        g::DECIMAL AS _decimal,
                        g::STRING AS _string,
                        g::STRING::BYTES AS _bytes,
                        substring('00000000-0000-0000-0000-' || g::STRING || '00000000000', 1, 36)::UUID AS _uuid,
                        '0.0.0.0'::INET + g AS _inet,
                        g::STRING::JSONB AS _jsonb,
                        enum_range('hello'::greeting)[g] as _enum
                FROM
                        generate_series(1, 5) AS g;
        COMMIT;

        INSERT INTO seed DEFAULT VALUES;
        CREATE INDEX on seed (_int8, _float8, _date);
        CREATE INVERTED INDEX on seed (_jsonb);
        

SELECT tab378984.crdb_internal_mvcc_timestamp AS "%pcol857759", '48 years 7 mons 894 days 13:39:26.674765':::INTERVAL AS col857760, tab378983.tableoid AS "coL857761", tab378983.crdb_internal_mvcc_timestamp AS col857762, (SELECT (-4999644074744333745):::INT8 AS "co""l857763" LIMIT 1:::INT8) AS col857764, tab378983._inet AS col857765, '2011-06-28 16:37:44.000635+00':::TIMESTAMPTZ AS col857766, tab378984._bool AS col857767, tab378983.tableoid AS col857768, tab378984._timestamptz AS col857769, NULL AS "Co😽l857770", tab378984._string AS "c)ol857771", NULL AS col857772, tab378983._int4 AS c🙃ol857773, tab378984._interval AS " col857774", tab378984.crdb_internal_mvcc_timestamp AS "c%69ol'857775" FROM defaultdb.public.seed@seed__int8__float8__date_idx AS
tab378983, defaultdb.public.seed@[0] AS tab378984 WHERE (true AND ('9E82DF40/BC8A8379':::PG_LSN::PG_LSN NOT IN (SELECT pg_lsn(tab378984._string::STRING)::PG_LSN::PG_LSN AS col857758 FROM defaultdb.public.seed@[0] AS "%ptAb%v378985" WHERE "%ptAb%v378985"._bool LIMIT 22:::INT8))) ORDER BY tab378983._timestamptz ASC NULLS FIRST LIMIT 78:::INT8;

stack trace is:

* ERROR: a panic has occurred!
* runtime error: invalid memory address or nil pointer dereference
* (1) attached stack trace
*   -- stack trace:
*   | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
*   | 	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:952
*   | [...repeated from below...]
* Wraps: (2) while executing: SELECT _._ AS _, '_':::INTERVAL AS _, _._ AS _, _._ AS _, (SELECT (_):::INT8 AS _ LIMIT _:::INT8) AS _, _._ AS _, '_':::TIMESTAMPTZ AS _, _._ AS _, _._ AS _, _._ AS _, _ AS _, _._ AS _, _ AS _, _._ AS _, _._ AS _, _._ AS _ FROM _@_ AS _, _@[0] AS _ WHERE (_ AND ('_':::PG_LSN::PG_LSN NOT IN (SELECT pg_lsn(_._::STRING)::PG_LSN::PG_LSN AS _ FROM _@[0] AS _ WHERE _._ LIMIT _:::INT8))) ORDER BY _._ ASC NULLS FIRST LIMIT _:::INT8
* 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:952
*   | runtime.gopanic
*   | 	GOROOT/src/runtime/panic.go:884
*   | 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:884
*   | 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:884
*   | 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:884
*   | 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:884
*   | 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:884
*   | 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:884
*   | runtime.panicmem
*   | 	GOROOT/src/runtime/panic.go:260
*   | runtime.sigpanic
*   | 	GOROOT/src/runtime/signal_unix.go:841
*   | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLReceiver).resetForLocalRerun
*   | 	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1245
*   | github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRun
*   | 	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:2005
*   | github.com/cockroachdb/cockroach/pkg/sql.runPlanInsidePlan
*   | 	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:353
*   | github.com/cockroachdb/cockroach/pkg/sql.(*applyJoinNode).runNextRightSideIteration
*   | 	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:258
*   | github.com/cockroachdb/cockroach/pkg/sql.(*applyJoinNode).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:223
*   | github.com/cockroachdb/cockroach/pkg/sql.(*planNodeToRowSource).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/plan_node_to_row_source.go:220
*   | github.com/cockroachdb/cockroach/pkg/sql/colexec.(*Columnarizer).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colexec/columnarizer.go:239
*   | github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
*   | 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.(*batchInfoCollector).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126
*   | github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin.(*crossJoiner).consumeRightInput
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin/crossjoiner.go:183
*   | github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin.(*crossJoiner).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin/crossjoiner.go:99
*   | github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
*   | 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.(*batchInfoCollector).Next
*   | 	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126
*   | github.com/cockroachdb/cockroach/pkg/sql/colexec.spool_false
*   | 	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/sorttopk.eg.go:321
* Wraps: (4) runtime error: invalid memory address or nil pointer dereference
* Error types: (1) *withstack.withStack (2) *safedetails.withSafeDetails (3) *withstack.withStack (4) runtime.errorString
*
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x10556ec7c]

goroutine 2497 [running]:
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).closeWrapper(0x14005d6cc80, {0x109374e60, 0x14005785f80}, {0x1089d8fc0?, 0x10c5dd8a0?})
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1199 +0x164
github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1({0x109374e60, 0x14005785f80}, {0xb?})
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:952 +0x4c
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58 +0x340
panic({0x1089d8fc0, 0x10c5dd8a0})
	GOROOT/src/runtime/panic.go:884 +0x204
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLReceiver).resetForLocalRerun(0x14004a6d880, {0x14005094d20?, 0x14005094d00?, 0x1?, 0x14005440460?})
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1245 +0xbc
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRun(0x14000df6780, {0x109374e60, 0x14005094d20}, 0x140045cd7b8, 0x14005440fa0, 0x14005440f00?, {{0x109378238, 0x14005440f00}, 0x0}, 0x14004a6d880, ...)
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:2005 +0x328
github.com/cockroachdb/cockroach/pkg/sql.runPlanInsidePlan({0x109374e60, 0x14005094d20}, {{0x109374e60, 0x14005094540}, 0x14003e4d800, 0x14005d6d2d8}, 0x140012e4310, {0x1093769b8, 0x14003aed0e0}, {0x0?, ...})
	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:353 +0x5d0
github.com/cockroachdb/cockroach/pkg/sql.(*applyJoinNode).runNextRightSideIteration(0x1400609c000, {{0x109374e60?, 0x14005094540?}, 0x14003e4d800?, 0x14005d6d2d8?}, {0x14005294dc0, 0x5, 0x5})
	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:258 +0x1ec
github.com/cockroachdb/cockroach/pkg/sql.(*applyJoinNode).Next(0x1400609c000, {{0x109374e60, 0x14005094540}, 0x14003e4d800, 0x14005d6d2d8})
	github.com/cockroachdb/cockroach/pkg/sql/apply_join.go:223 +0x164
github.com/cockroachdb/cockroach/pkg/sql.(*planNodeToRowSource).Next(0x14004016000)
	github.com/cockroachdb/cockroach/pkg/sql/plan_node_to_row_source.go:220 +0x144
github.com/cockroachdb/cockroach/pkg/sql/colexec.(*Columnarizer).Next(0x14002188600)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/columnarizer.go:239 +0xf4
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x14004527080?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).Next(0x14007617700)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126 +0x48
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin.(*crossJoiner).consumeRightInput(0x140049bca80, {0x109374e60, 0x14005094420})
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin/crossjoiner.go:183 +0x1d8
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin.(*crossJoiner).Next(0x140049bca80)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecjoin/crossjoiner.go:99 +0x54
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x14004527200?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).Next(0x14007617800)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126 +0x48
github.com/cockroachdb/cockroach/pkg/sql/colexec.spool_false(0x14004a729c0)
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/sorttopk.eg.go:321 +0x34
github.com/cockroachdb/cockroach/pkg/sql/colexec.(*topKSorter).spool(0x1400624c198?)
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/sorttopk.eg.go:73 +0x2c
github.com/cockroachdb/cockroach/pkg/sql/colexec.(*topKSorter).Next(0x14004a729c0)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/sorttopk.go:165 +0x5c
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecdisk.(*diskSpillerBase).Next.func1()
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecdisk/disk_spiller.go:202 +0x34
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x135d81958?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecdisk.(*diskSpillerBase).Next(0x1400284bc20)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecdisk/disk_spiller.go:200 +0x54
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils.(*vectorTypeEnforcer).Next(0x14005294f00)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils/operator.go:157 +0x30
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.constIntervalOp.Next({{{{0x10938ff48, 0x14005294f00}}, {{0x109374e60, 0x14005094420}}}, 0x14004527400, 0xa, {0x247, 0x37e, 0x2cb7822f24c8}})
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/colexecbase/const.eg.go:485 +0x50
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils.(*vectorTypeEnforcer).Next(0x14005294fa0)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils/operator.go:157 +0x30
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.constInt64Op.Next({{{{0x10938ff48, 0x14005294fa0}}, {{0x109374e60, 0x14005094420}}}, 0x14004527440, 0xb, 0xba9db234097a3a4f})
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/colexecbase/const.eg.go:368 +0x48
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils.(*vectorTypeEnforcer).Next(0x14005294ff0)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils/operator.go:157 +0x30
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.constTimestampOp.Next({{{{0x10938ff48, 0x14005294ff0}}, {{0x109374e60, 0x14005094420}}}, 0x140045274c0, 0xc, {0x9b078, 0xec59bfa58, 0x14000bca070}})
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/colexecbase/const.eg.go:446 +0x50
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils.(*vectorTypeEnforcer).Next(0x14005295090)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecutils/operator.go:157 +0x30
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.constNullOp.Next({{{{0x10938ff48, 0x14005295090}}, {{0x109374e60, 0x14005094420}}}, 0xd})
	github.com/cockroachdb/cockroach/bazel-out/darwin_arm64-fastbuild/bin/pkg/sql/colexec/colexecbase/const.eg.go:611 +0x3c
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.(*simpleProjectOp).Next(0x140047f6600)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase/simple_project.go:124 +0x34
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x14004527580?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).Next(0x14007617900)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126 +0x48
github.com/cockroachdb/cockroach/pkg/sql/colexecop.(*noopOperator).Next(0x102879d10?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecop/operator.go:430 +0x28
github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase.(*simpleProjectOp).Next(0x140047f6660)
	github.com/cockroachdb/cockroach/pkg/sql/colexec/colexecbase/simple_project.go:124 +0x34
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).next(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:118
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x14004527680?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*batchInfoCollector).Next(0x14007617b00)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/stats.go:126 +0x48
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*BatchFlowCoordinator).nextAdapter(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:250
github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError(0x109374db8?)
	github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:92 +0x58
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*BatchFlowCoordinator).next(...)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:254
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*BatchFlowCoordinator).Run(0x14004f58640, {0x109374db8?, 0x14005294d70?})
	github.com/cockroachdb/cockroach/pkg/sql/colflow/flow_coordinator.go:286 +0x10c
github.com/cockroachdb/cockroach/pkg/sql/colflow.(*vectorizedFlow).Run(0x14005b5a240, {0x109374db8, 0x14005294d70}, 0x0)
	github.com/cockroachdb/cockroach/pkg/sql/colflow/vectorized_flow.go:320 +0x1a8
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).Run(0x14000df6780, {0x109374e60, 0x140011251d0}, 0x14005440aa0, 0x14005440460, 0x140049bc680, 0x14004480000, 0x14005d6d790, 0x14004229c50)
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:906 +0x8a0
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRun(0x14000df6780, {0x109374e60, 0x140011251d0}, 0x14005d6d790, 0x14005440aa0, 0x1055611b8?, {{0x109378238, 0x14005440a00}, 0x0}, 0x14004480000, ...)
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1957 +0x170
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRunAll.func3(0x14005d6d2d8, 0x0?, {0x109374e60, 0x140011251d0}, 0x1400624d958?, 0x102816398?, 0x0?)
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1672 +0x84
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRunAll(0x14005440aa0?, {0x109374e60?, 0x140011251d0}, 0x14005d6d790, 0x14005440aa0, 0x14005d6d2d8, 0x14004480000, 0x0)
	github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:1675 +0x17c
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithDistSQLEngine(0x14005d6cc80, {0x109374e60?, 0x140011251d0}, 0x14005d6d2d8, 0x0?, {0x135d8b010?, 0x14000acfb28}, 0x1400624de50?, 0x140062942d8)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:2291 +0x480
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).dispatchToExecutionEngine(0x14005d6cc80, {0x109374e60, 0x14004f147e0}, 0x14005d6d2d8, {0x135d8b010, 0x14000acfb28})
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1839 +0xe44
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmtInOpenState(0x14005d6cc80, {0x109374e60, 0x14004f147e0}, {{0x1093a1940, 0x14005a2f090}, {0x0, 0x0, 0x0}, {0x140030b7475, 0x450}, ...}, ...)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:1070 +0x33d4
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt.func1({0x109374e60?, 0x14004f14660?})
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:144 +0x8c
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithProfiling(0x109374e60?, {0x109374e60?, 0x14004f14660?}, {0x1093a1940?, 0x14005a2f090?}, 0x0?, 0x0?)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:3235 +0x280
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execStmt(0x14005d6cc80, {0x109374e60, 0x14004f14660}, {{0x1093a1940, 0x14005a2f090}, {0x0, 0x0, 0x0}, {0x140030b7475, 0x450}, ...}, ...)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go:143 +0x2e8
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd.func1(0x1400624f970, 0x1400624f598, 0x14005d6cc80, 0x1400624f4c8, 0x14006c6d5b8, 0x14006c6d5a8, 0x14006c6d5c8, 0x1400624f5d8)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2220 +0x2d4
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execCmd(0x14005d6cc80)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2225 +0x28c
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run(0x14005d6cc80, {0x109374e60, 0x14005785f80}, 0x1032181b8?, 0x14003b20410?, 0x14000d48c80?)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:2142 +0x170
github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn(0x140020a3f40?, {0x109374e60?, 0x14005785f80?}, {0x1400256102a?}, 0x4?, 0x14005785e00?)
	github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:954 +0xb4
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommands(0x14000acf400, {0x109374e60, 0x14005785f80}, {0x1, 0x2, {0x1, {0x106de8e73, 0x3}, {0x14003bf63d0, 0xf}, ...}, ...}, ...)
	github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:247 +0x2a4
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveImpl.func3()
	github.com/cockroachdb/cockroach/pkg/sql/pgwire/server.go:999 +0xcc
created by github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*Server).serveImpl
	github.com/cockroachdb/cockroach/pkg/sql/pgwire/server.go:996 +0x498

@rafiss rafiss changed the title sql/tests: TestRandomSyntaxSQLSmith failed sql/tests: TestRandomSyntaxSQLSmith failed [NPE in applyJoinNode] Oct 2, 2023
@rafiss rafiss added O-rsg Random Syntax Generator T-sql-queries SQL Queries Team X-noreuse Prevent automatic commenting from CI test failures and removed T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) labels Oct 2, 2023
@rafiss rafiss removed this from Triage in SQL Foundations Oct 2, 2023
DrewKimball added a commit to DrewKimball/cockroach that referenced this issue Oct 4, 2023
This patch changes the error returned upon failing to parse a PG_LSN
value to match postgres. Previously, the error was an internal error.

Informs cockroachdb#111327

Release note: None
DrewKimball added a commit to DrewKimball/cockroach that referenced this issue Oct 17, 2023
This patch changes the error returned upon failing to parse a PG_LSN
value to match postgres. Previously, the error was an internal error.

Informs cockroachdb#111327

Release note: None
DrewKimball added a commit to DrewKimball/cockroach that referenced this issue Oct 19, 2023
This patch changes the error returned upon failing to parse a PG_LSN
value to match postgres. Previously, the error was an internal error.

Informs cockroachdb#111327

Release note: None
craig bot pushed a commit that referenced this issue Oct 20, 2023
111713: sql: fix nil-pointer error in local retry r=DrewKimball a=DrewKimball

#### tree: return correct parse error for pg_lsn

This patch changes the error returned upon failing to parse a PG_LSN
value to match postgres. Previously, the error was an internal error.

Informs #111327

Release note: None

#### sql: fix nil-pointer error in local retry

In #105451, we added logic to locally retry a distributed query
after an error. However, the retry logic unconditionally updated a
field of `DistSQLReceiver` that may be nil, which could cause a
nil-pointer error in some code paths (e.g. apply-join). This patch
adds a check that the field is non-nil, as is done for other places
where it is updated.

There is no release note because the change has not yet made it into
a release.

Fixes #111327

Release note: None

112654: opt: fix inverted index constrained scans for equality filters r=mgartner a=mgartner

#### opt: fix inverted index constrained scans for equality filters

This commit fixes a bug introduced in #101178 that allows the optimizer
to generated inverted index scans on columns that are not filtered by
the query. For example, an inverted index over the column `j1` could be
scanned for a filter involving a different column, like `j2 = '5'`. The
bug is caused by a simple omission of code that must check that the
column in the filter is an indexed column.

Fixes #111963

There is no release note because this bug is not present in any
releases.

Release note: None

#### randgen: generate single-column indexes more often

This commit makes `randgen` more likely to generate single-column
indexes. It is motivated by the bug #111963, which surprisingly lived on
the master branch for sixth months without being detected. It's not
entirely clear why TLP or other randomized tests did not catch the bug,
which has such a simple reproduction.

One theory is that indexes tend to be multi-column and constrained scans
on multi-column inverted indexes are not commonly planned for randomly
generated queries because the set of requirements to generate the scan
are very specific: the query must hold each prefix column constant, e.g.
`a=1 AND b=2 AND j='5'::JSON`. The likelihood of randomly generating
such an expression may be so low that the bug was not caught.

By making 10% of indexes single-column, this bug may have been more
likely to be caught because only the inverted index column needs to be
constrained by an equality filter.

Release note: None


112690: sql: disallow invocation of procedures outside of CALL r=mgartner a=mgartner

#### sql: disallow invocation of procedures outside of CALL

This commit adds some missing checks to ensure that procedures cannot be
invoked in any context besides as the root expression in `CALL`
statements.

Epic: CRDB-25388

Release note: None

#### sql: add tests with function invocation in procedure argument

This commit adds a couple of tests that show that functions can be used
in procedure argument expressions.

Release note: None


112698: sql: clarify comments/naming of descriptorChanged flag r=rafiss a=rafiss

fixes #110727
Release note: None

112701: sql/logictest: fix flakes in select_for_update_read_committed r=mgartner a=mgartner

The `select_for_update_read_committed` tests were flaking because not
all statements were being run under READ COMMITTED isolation. The logic
test infrastructure does not allow fine-grained control of sessions, and
setting the isolation level in one statement would only apply to a
single session. Subsequent statements are not guaranteed to run in the
same session because they could run in any session in the connection
pool. This commit wraps each statement in an explicitly transaction with
an explicit isolation level to ensure READ COMMITTED is used.

In the future, we should investigate allowing fine-grained and explicit
control of sessions in logic tests.

Fixes #112677

Release note: None


112726: sql: make tests error if a leaf txn is not created when expected r=rharding6373 a=rharding6373

This adds a test-only error if a leaf transaction is expected to be used by a plan but a root transaction is used instead.

Epic: none
Informs: #111097

Release note: None

112767: log: fix stacktrace test goroutine counts r=rickystewart a=dhartunian

Previously, we would use the count of the string `goroutine ` as a proxy for the number of goroutines in the stacktrace. This stopped working in go 1.21 due to this change:
golang/go@51225f6

We should consider using a stacktrace parser in the future.

Supports #112088

Epic: None
Release note: None

Co-authored-by: Drew Kimball <drewk@cockroachlabs.com>
Co-authored-by: Marcus Gartner <marcus@cockroachlabs.com>
Co-authored-by: Rafi Shamim <rafi@cockroachlabs.com>
Co-authored-by: rharding6373 <rharding6373@users.noreply.github.com>
Co-authored-by: David Hartunian <davidh@cockroachlabs.com>
@craig craig bot closed this as completed in 939f66d Oct 20, 2023
blathers-crl bot pushed a commit that referenced this issue Oct 20, 2023
This patch changes the error returned upon failing to parse a PG_LSN
value to match postgres. Previously, the error was an internal error.

Informs #111327

Release note: None
blathers-crl bot pushed a commit that referenced this issue Oct 20, 2023
In #105451, we added logic to locally retry a distributed query
after an error. However, the retry logic unconditionally updated a
field of `DistSQLReceiver` that may be nil, which could cause a
nil-pointer error in some code paths (e.g. apply-join). This patch
adds a check that the field is non-nil, as is done for other places
where it is updated.

There is no release note because the change has not yet made it into
a release.

Fixes #111327

Release note: None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch-master Failures on the master branch. C-test-failure Broken test (automatically or manually discovered). O-robot Originated from a bot. O-rsg Random Syntax Generator release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. T-sql-queries SQL Queries Team X-noreuse Prevent automatic commenting from CI test failures
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants