-
Notifications
You must be signed in to change notification settings - Fork 4.1k
sql: crash in IndexedVarHelper.checkIndex: panic: invalid var index 6 (columns: 4) #34437
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.S-3Medium-low impact: incurs increased costs for some users (incl lower avail, recoverable bad data)Medium-low impact: incurs increased costs for some users (incl lower avail, recoverable bad data)
Description
Pasting the transcript below crashes the server:
CREATE TABLE table0 (col0 STRING, col1 INT8 NULL, FAMILY fam0 (col0), FAMILY fam1 (col1));
CREATE TABLE table1 (col0 FLOAT8 NOT NULL, FAMILY fam0 (col0), PRIMARY KEY (col0 ASC), INDEX (col0), INDEX (col0), INDEX (col0), UNIQUE (col0 ASC), UNIQUE (col0 ASC), UNIQUE (col0), INDEX (col0 ASC), INDEX (col0 DESC), UNIQUE (col0));
CREATE TABLE table8 (col0 FLOAT8, col1 TIME NOT NULL, col2 BYTES NOT NULL, col3 BOOL NULL, col4 OID NOT NULL, col5 FLOAT8, col6 NAME, col7 BOOL NOT NULL, col8 OID[], col9 TIMESTAMP, FAMILY fam0 (col6, col4, col9, col5, col0, col1, col2, col8, col7, col3), PRIMARY KEY (col9, col1 ASC, col4 DESC), INDEX (col9, col7 DESC, col5 ASC, col6 ASC, col2 ASC, col3, col4 DESC, col0 ASC, col1 DESC), INDEX (col2 DESC), INDEX (col1, col4, col6));
CREATE TABLE table7 (col0 INT8[] NOT NULL, col1 DATE NULL, col2 BYTES NULL, col3 UUID NULL, col4 BYTES NOT NULL, col5 STRING, col6 FLOAT8 NULL, col7 BOOL NOT NULL, col8 DATE, col9 UUID, col10 FLOAT8 NULL, FAMILY fam0 (col1, col2, col4, col10, col9, col5, col6, col7, col3, col8, col0), PRIMARY KEY (col2 DESC, col1 DESC, col9 DESC, col10), INDEX (col6, col7 ASC, col2 ASC, col1 DESC), INDEX (col5 ASC, col7, col6));
CREATE TABLE table4 (col0 DECIMAL, col1 TIMESTAMP NOT NULL, col2 TIMESTAMPTZ NOT NULL, col3 TIME NOT NULL, col4 OID[] NOT NULL, col5 UUID NOT NULL, col6 TIME NOT NULL, col7 NAME, col8 TIMESTAMP, col9 VARBIT, col10 INTERVAL, col11 BOOL NULL, col12 BOOL, col13 STRING COLLATE de NULL, col14 DATE NOT NULL, col15 OID[] NOT NULL, col16 TIMESTAMPTZ NULL, col17 INT8 NULL, FAMILY fam0 (col6, col14, col7, col0, col9, col11, col4), FAMILY fam1 (col1, col16, col12, col13, col2, col8, col5), FAMILY fam2 (col17, col15), FAMILY fam3 (col3, col10), UNIQUE (col3, col6 DESC, col0, col9, col2 ASC, col7 DESC, col12 DESC, col13 ASC, col5 ASC, col10, col14 DESC, col16 DESC), UNIQUE (col2, col6 ASC, col11, col10 DESC, col16, col9, col12 DESC, col8 ASC, col17 ASC, col1), UNIQUE (col1, col2, col3, col7 DESC), UNIQUE (col11, col9 DESC, col2, col12 ASC, col6 ASC, col16, col14 DESC, col7 DESC, col1 ASC, col5 ASC, col0, col10, col8 DESC, col3), INDEX (col16 DESC, col0 DESC), INDEX (col12, col5), INDEX (col2, col13 DESC, col16 ASC, col10 ASC, col1, col11 DESC, col6), UNIQUE (col17 DESC, col12 DESC, col5 DESC, col8 ASC, col3, col9 DESC, col0 ASC, col16 DESC, col10 DESC, col11 ASC, col7, col14 ASC, col2 DESC));
CREATE TABLE table5 (col0 TIME NULL, col1 OID, col2 TIMESTAMPTZ, col3 INET, FAMILY fam0 (col3, col2, col1), FAMILY fam1 (col0), PRIMARY KEY (col1 ASC, col2), UNIQUE (col2, col3 DESC, col1, col0), UNIQUE (col1, col2 DESC, col0 DESC, col3 ASC), UNIQUE (col1), INDEX (col3 ASC), UNIQUE (col0, col3), INDEX (col3 DESC, col2 DESC), INDEX (col1 ASC, col2, col3 ASC, col0 ASC));
INSERT INTO table8(col1, col2, col9, col4, col6, col7, col3) (SELECT '19:06:18.321589', decode('|tSG', '\"W'), '1970-01-11 19:21:23.000956+00:00', 2687190552, (SELECT NULL FROM [INSERT INTO table4(col1, col2, col3, col4, col5, col6, col10, col11, col12, col13, col14, col15, col16, col17, rowid) SELECT '1970-01-05 07:44:49.000452+00:00', '1970-01-02 17:58:10.000961+00:00', '22:18:29.974246', ARRAY[3634067019, 3673198836], '77fdafa4-a71a-465d-881d-7531d4ea765c', '05:35:53.294871', '82 years 5 mons 898 days 00:19:49.377726826', true, false, e'\\U000E0114\\U000DBF8C\\U000CF9B3' COLLATE de, '1988-08-27', ARRAY[706832316, 191059705], '1970-01-07 18:50:40.000945+00:00', NULL, -7506004205652720934 FROM table1 AS tab_7 WHERE true LIMIT 53 RETURNING '1995-10-12'] WHERE (B'10001000000' = B'110000000111001111011111110001011111010100010111011111100100001100100') LIMIT 1), false, (ARRAY['09:44:50.832244', '02:33:09.406811', '03:39:52.873182'] = ARRAY['08:51:48.795324', '03:07:42.397578']) FROM [INSERT INTO table7(col10, col1, col2, col3, col4, col0, col6, col7, col8, col9) SELECT NULL, '1971-07-29', e'\\\\x6b489ee49a', CASE WHEN false THEN '4c97526d-8e5d-440b-b78f-59d1333be6cd' ELSE 'd72030a6-84ff-458e-ac5e-4db0ee419642' END, e'\\\\x', NULL, 0.2560828293553603, false, '1988-08-31', NULL FROM table7 AS tab_3 LIMIT 79 RETURNING '48.167.51.225/0'] LIMIT 92) UNION ALL (SELECT NULL, e'\\\\x', '1970-01-06 03:55:21.000151+00:00', 948048732, ']t', false, NULL FROM table5 AS tab_8);
The stack trace is:
panic(0x675e9e0, 0xc00040e3e0)
/usr/local/Cellar/go/1.11.4/libexec/src/runtime/panic.go:513 +0x1b9
github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*IndexedVarHelper).checkIndex(0xc0016b56a0, 0x6)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/sem/tree/indexed_vars.go:184 +0x139
github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*IndexedVarHelper).IndexedVar(0xc0016b56a0, 0x6, 0x68f5d00)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/sem/tree/indexed_vars.go:197 +0x39
github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*IndexedVarHelper).VisitPre(0xc0016b56a0, 0x73f5660, 0xc0009bb020, 0xc000be2600, 0xc00130ff90, 0x400cdb8)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/sem/tree/indexed_vars.go:268 +0x4f
github.com/cockroachdb/cockroach/pkg/sql/sem/tree.WalkExpr(0x73cb660, 0xc0016b56a0, 0x73f5660, 0xc0009bb020, 0xc0009bb020, 0x4, 0xc000be2600)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/sem/tree/walk.go:680 +0x56
github.com/cockroachdb/cockroach/pkg/sql/sem/tree.(*IndexedVarHelper).Rebind(0xc0016b56a0, 0x740da00, 0xc0009bb020, 0xc000be0001, 0x4, 0x4)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/sem/tree/indexed_vars.go:259 +0xe5
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*exprHelper).init(0xc0016b5690, 0x0, 0x0, 0x0, 0x0, 0x740da00, 0xc0009bb020, 0xc00151d860, 0x4, 0x4, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/expr.go:159 +0x1f0
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*ProcOutputHelper).Init(0xc001037818, 0xc001630af8, 0xc00151d860, 0x4, 0x4, 0xc0017591e0, 0x73e1820, 0xc0011ee700, 0xc00040e301, 0xc0017591e0)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/processors.go:152 +0x829
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*ProcessorBase).InitWithEvalCtx(0xc001037800, 0x73fc720, 0xc001037800, 0xc001630af8, 0xc00151d860, 0x4, 0x4, 0xc00151d4a0, 0xc0017591e0, 0x3, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/processors.go:853 +0x135
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*ProcessorBase).Init(0xc001037800, 0x73fc720, 0xc001037800, 0xc001630af8, 0xc00151d860, 0x4, 0x4, 0xc00151d4a0, 0x3, 0x73e1820, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/processors.go:829 +0x156
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.newTableReader(0xc00151d4a0, 0x3, 0xc0018e5880, 0xc001630af8, 0x73e1820, 0xc0011ee700, 0x0, 0x1, 0x0)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/tablereader.go:93 +0x222
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.newProcessor(0x73f02a0, 0xc0009bb4d0, 0xc00151d4a0, 0x3, 0xc001630a30, 0xc001630af8, 0x0, 0x0, 0x0, 0xc0013115f8, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/processors.go:1007 +0x298a
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*Flow).makeProcessor(0xc00151d4a0, 0x73f02a0, 0xc0009bb4d0, 0xc001630a18, 0x0, 0x0, 0x0, 0xe873ac8, 0xc0013f2500, 0x0, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/flow.go:376 +0x1de
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*Flow).setupProcessors(0xc00151d4a0, 0x73f02a0, 0xc0009bb4d0, 0xc00191eb00, 0x5, 0x5, 0x0, 0x0)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/flow.go:455 +0x1cb
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*Flow).setup(0xc00151d4a0, 0x73f02a0, 0xc0009bb4d0, 0xc00133f4b0, 0x0, 0x0)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/flow.go:555 +0xda
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*ServerImpl).setupFlow(0xc00011c000, 0x73f02a0, 0xc0017045d0, 0x7424fc0, 0xc000940000, 0xc001830140, 0xc00133f4a0, 0x73df820, 0xc0010ba000, 0xc001913518, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/server.go:457 +0x878
github.com/cockroachdb/cockroach/pkg/sql/distsqlrun.(*ServerImpl).SetupLocalSyncFlow(0xc00011c000, 0x73f02a0, 0xc0017045d0, 0xc001830140, 0xc00133f4a0, 0x73df820, 0xc0010ba000, 0xc001913518, 0x1, 0xc0013f4a80, ...)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsqlrun/server.go:512 +0xe7
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).Run(0xc000451900, 0xc0015296e0, 0xc00023dcb0, 0xc001312968, 0xc0010ba000, 0xc001913518, 0x0)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:240 +0x830
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PlanAndRun(0xc000451900, 0x73f02a0, 0xc0017045d0, 0xc001913518, 0xc0015296e0, 0xc00023dcb0, 0x73f1e60, 0xc00040bf80, 0xc0010ba000)
/Users/jordan/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go:793 +0x200
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execWithDistSQLEngine(0xc001913000, 0x73f02a0, 0xc0017045d0, 0xc001913450, 0x2, 0xf594290, 0xc00023dd40, 0x0, 0x0, 0x0)
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.S-3Medium-low impact: incurs increased costs for some users (incl lower avail, recoverable bad data)Medium-low impact: incurs increased costs for some users (incl lower avail, recoverable bad data)