Cockroach: sentry: conn_executor.go:670: panic while executing 1 statements: SELECT _._, _._, ((SELECT _._ FROM _ AS _ WHERE _._ = _._ LIMIT _) - IFNULL(_._, _)) AS _, _._, _._ FROM _ AS _ JOIN _ AS _ ON _._ = _._ WHERE _._ = _ ORDER BY _._: caused by <redacted>

Created on 31 Oct 2018  路  6Comments  路  Source: cockroachdb/cockroach

https://sentry.io/cockroach-labs/cockroachdb/issues/747736774/

conn_executor.go:670: panic while executing 1 statements: SELECT _._, _._, ((SELECT _._ FROM _ AS _ WHERE _._ = _._ LIMIT _) - IFNULL(_._, _)) AS _, _._, _._ FROM _ AS _ JOIN _ AS _ ON _._ = _._ WHERE _._ = _ ORDER BY _._: caused by

github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1

stacktrace: {u'frames': [{u'function': u'func4', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql/pgwire.(conn).serveImpl', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go', u'lineno': 309, u'in_app': True}, {u'function': u'ServeConn', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(Server)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'lineno': 420, u'in_app': True}, {u'function': u'run', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(connExecutor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'lineno': 1143, u'in_app': True}, {u'function': u'execStmt', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(connExecutor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'lineno': 95, u'in_app': True}, {u'function': u'execStmtInOpenState', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(connExecutor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'lineno': 403, u'in_app': True}, {u'function': u'dispatchToExecutionEngine', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(connExecutor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'lineno': 825, u'in_app': True}, {u'function': u'execWithDistSQLEngine', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(connExecutor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor_exec.go', u'lineno': 983, u'in_app': True}, {u'function': u'PlanAndRun', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_running.go', u'lineno': 740, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2279, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2329, u'in_app': True}, {u'function': u'createPlanForDistinct', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2658, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2279, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2273, u'in_app': True}, {u'function': u'createPlanForLookupJoin', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 1844, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2366, u'in_app': True}, {u'function': u'wrapPlan', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2412, u'in_app': True}, {u'function': u'walkPlan', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'lineno': 65, u'in_app': True}, {u'function': u'visit', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(planVisitor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'lineno': 101, u'in_app': True}, {u'function': u'visitInternal', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(planVisitor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'lineno': 504, u'in_app': True}, {u'function': u'visit', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(planVisitor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'lineno': 101, u'in_app': True}, {u'function': u'visitInternal', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(planVisitor)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/walk.go', u'lineno': 124, u'in_app': True}, {u'function': u'func1', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner).wrapPlan', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2437, u'in_app': True}, {u'function': u'createPlanForNode', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 2276, u'in_app': True}, {u'function': u'createPlanForJoin', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 1965, u'in_app': True}, {u'function': u'tryCreatePlanForInterleavedJoin', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_plan_join.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_plan_join.go', u'lineno': 120, u'in_app': True}, {u'function': u'PartitionSpans', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(DistSQLPlanner)', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go', u'lineno': 699, u'in_app': True}, {u'function': u'sigpanic', u'abs_path': u'/usr/local/go/src/runtime/signal_unix.go', u'module': u'runtime', u'filename': u'runtime/signal_unix.go', u'lineno': 388, u'in_app': False}, {u'function': u'panicmem', u'abs_path': u'/usr/local/go/src/runtime/panic.go', u'module': u'runtime', u'filename': u'runtime/panic.go', u'lineno': 63, u'in_app': False}, {u'function': u'gopanic', u'abs_path': u'/usr/local/go/src/runtime/panic.go', u'module': u'runtime', u'filename': u'runtime/panic.go', u'lineno': 502, u'in_app': False}, {u'function': u'call32', u'abs_path': u'/usr/local/go/src/runtime/asm_amd64.s', u'module': u'runtime', u'filename': u'runtime/asm_amd64.s', u'lineno': 573, u'in_app': False}, {u'function': u'func1', u'abs_path': u'/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'module': u'github.com/cockroachdb/cockroach/pkg/sql.(Server).ServeConn', u'filename': u'github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go', u'lineno': 418, u'in_app': True}]}
type: *log.safeError
value: conn_executor.go:670: panic while executing 1 statements: SELECT _._, _._, ((SELECT _._ FROM _ AS _ WHERE _._ = _._ LIMIT _) - IFNULL(_._, _)) AS _, _._, _._ FROM _ AS _ JOIN _ AS _ ON _._ = _._ WHERE _._ = _ ORDER BY _._: caused by

A-sql-execution C-bug O-sentry

Most helpful comment

holy shit, I came here to report this, it happened a few minutes ago, it can't be a coincidence... did CockroachDB automatically created an anonymous bug report of my crash? wow 馃

Anyway, I was just trying to run a correlated subquery:

select p.read_sequence, t.message_sequence,((select m.message_sequence FROM messages m where m.thread_id = t.thread_id LIMIT 1) - IFNULL(p.read_sequence, 0)) unread_count, t.thread_id, t.title  from participants p JOIN threads t ON t.thread_Id = p.thread_id where p.thread_id = 'thread_id1' order by t.thread_id;

All 6 comments

holy shit, I came here to report this, it happened a few minutes ago, it can't be a coincidence... did CockroachDB automatically created an anonymous bug report of my crash? wow 馃

Anyway, I was just trying to run a correlated subquery:

select p.read_sequence, t.message_sequence,((select m.message_sequence FROM messages m where m.thread_id = t.thread_id LIMIT 1) - IFNULL(p.read_sequence, 0)) unread_count, t.thread_id, t.title  from participants p JOIN threads t ON t.thread_Id = p.thread_id where p.thread_id = 'thread_id1' order by t.thread_id;

@RaduBerinde, can you take a look? Possibly this is related to the DistSql ordering issues you recently investigated? Maybe there's already a fix?

@bithavoc do you have the schema for the tables involved? (you can print them out using SHOW CREATE TABLE <xx>)

Looks like the crash is in PartitionSpans in tryCreatePlanForInterelevedJoin (all happening inside a wrapPlan). I don't think this is related to ordering issues.

Hi @RaduBerinde thanks for taking a look:
Here is the db schema:

show create table messages;
+----------+--------------------------------------------------------------------------+
|  Table   |                               CreateTable                                |
+----------+--------------------------------------------------------------------------+
| messages | CREATE TABLE messages (                                                  |
|          |                                                                          |
|          |     thread_id UUID NOT NULL,                                             |
|          |                                                                          |
|          |     message_sequence BIGINT NOT NULL,                                    |
|          |                                                                          |
|          |     account_id UUID NOT NULL,                                            |
|          |                                                                          |
|          |     message_id UUID NOT NULL,                                            |
|          |                                                                          |
|          |     content STRING NOT NULL,                                             |
|          |                                                                          |
|          |     created_at TIMESTAMP NOT NULL,                                       |
|          |                                                                          |
|          |     kind SMALLINT NULL DEFAULT 0:::INT,                                  |
|          |                                                                          |
|          |     CONSTRAINT "primary" PRIMARY KEY (thread_id ASC, message_sequence    |
|          | ASC),                                                                    |
|          |                                                                          |
|          |     UNIQUE INDEX messages_message_id_key (message_id ASC),               |
|          |                                                                          |
|          |     CONSTRAINT fk_account_id_ref_accounts FOREIGN KEY (account_id)       |
|          | REFERENCES accounts (account_id) ON DELETE CASCADE ON UPDATE CASCADE,    |
|          |                                                                          |
|          |     INDEX messages_auto_index_fk_account_id_ref_accounts (account_id     |
|          | ASC),                                                                    |
|          |                                                                          |
|          |     CONSTRAINT fk_thread_id_ref_threads FOREIGN KEY (thread_id)          |
|          | REFERENCES threads (thread_id) ON DELETE CASCADE ON UPDATE CASCADE,      |
|          |                                                                          |
|          |     FAMILY "primary" (thread_id, message_sequence, account_id,           |
|          | message_id, content, created_at, kind)                                   |
|          |                                                                          |
|          | ) INTERLEAVE IN PARENT threads (thread_id)                               |
+----------+--------------------------------------------------------------------------+
(1 row)

Time: 22.124051ms
show create table participants;
+--------------+--------------------------------------------------------------------------+
|    Table     |                               CreateTable                                |
+--------------+--------------------------------------------------------------------------+
| participants | CREATE TABLE participants (                                              |
|              |                                                                          |
|              |     thread_id UUID NOT NULL,                                             |
|              |                                                                          |
|              |     account_id UUID NOT NULL,                                            |
|              |                                                                          |
|              |     participant_id UUID NOT NULL,                                        |
|              |                                                                          |
|              |     role_level SMALLINT NOT NULL,                                        |
|              |                                                                          |
|              |     created_at TIMESTAMP NOT NULL,                                       |
|              |                                                                          |
|              |     updated_at TIMESTAMP NOT NULL,                                       |
|              |                                                                          |
|              |     read_sequence BIGINT NULL,                                           |
|              |                                                                          |
|              |     CONSTRAINT "primary" PRIMARY KEY (thread_id ASC, account_id ASC),    |
|              |                                                                          |
|              |     UNIQUE INDEX participants_participant_id_key (participant_id ASC),   |
|              |                                                                          |
|              |     CONSTRAINT fk_account_id_ref_accounts FOREIGN KEY (account_id)       |
|              | REFERENCES accounts (account_id) ON DELETE CASCADE ON UPDATE CASCADE,    |
|              |                                                                          |
|              |     INDEX participants_auto_index_fk_account_id_ref_accounts (account_id |
|              | ASC),                                                                    |
|              |                                                                          |
|              |     CONSTRAINT fk_thread_id_ref_threads FOREIGN KEY (thread_id)          |
|              | REFERENCES threads (thread_id) ON DELETE CASCADE ON UPDATE CASCADE,      |
|              |                                                                          |
|              |     FAMILY "primary" (thread_id, account_id, participant_id, role_level, |
|              | created_at, updated_at, read_sequence)                                   |
|              |                                                                          |
|              | ) INTERLEAVE IN PARENT threads (thread_id)                               |
+--------------+--------------------------------------------------------------------------+
(1 row)

Time: 16.826924ms
````

show create table threads;
+---------+--------------------------------------------------------------------------+
| Table | CreateTable |
+---------+--------------------------------------------------------------------------+
| threads | CREATE TABLE threads ( |
| | |
| | thread_id UUID NOT NULL, |
| | |
| | title STRING NOT NULL, |
| | |
| | created_at TIMESTAMP NOT NULL, |
| | |
| | updated_at TIMESTAMP NOT NULL, |
| | |
| | message_sequence BIGINT NOT NULL DEFAULT 0:::INT, |
| | |
| | tip_message_sequence BIGINT NOT NULL DEFAULT 0:::INT, |
| | |
| | CONSTRAINT "primary" PRIMARY KEY (thread_id ASC), |
| | |
| | FAMILY "primary" (thread_id, title, created_at, updated_at, |
| | message_sequence, tip_message_sequence) |
| | |
| | ) |
+---------+--------------------------------------------------------------------------+
(1 row)

Time: 18.267456ms
```

Thank you @bithavoc, I was able to reproduce.

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
github.com/cockroachdb/cockroach/pkg/sql.(*DistSQLPlanner).PartitionSpans(0xc0006d3f00, 0xc000d93320, 0xc000da6f00, 0x1, 0x1, 0xc001191640, 0x3, 0x3, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/pkg/sql/distsql_physical_planner.go:699 +0x749

Looks like planCtx.spanIter is not set here. We probably need some special casing in tryCreatePlanForInterleavedJoin for the case where we are planning locally, similar to createTableReaders. Perhaps a cleaner solution would be to have a "local" implementation of SpanResolverIterator.

You can repro by running this through cockroach demo: https://gist.github.com/RaduBerinde/a490d69132e4277e4170fd98087ddd97

Was this page helpful?
0 / 5 - 0 ratings