When a PCR reader tenant's crdb_internal.cluster_locks virtual table's worker goroutine iterates all tables to accumulate the set of spans in which it will query for locks, it is attempting to get the span for tables that are external, which is invalid -- external tables by definition do not have a key span since their data is external. Thus the TableSpan() call panics.
Additionally, this bug surprisingly crashes the node, rather than fails the query, as this panic appears to not be recovered because virtual table generators run their generation function in a separate goroutine.
When a PCR reader tenant's
crdb_internal.cluster_locks
virtual table's worker goroutine iterates all tables to accumulate the set of spans in which it will query for locks, it is attempting to get the span for tables that are external, which is invalid -- external tables by definition do not have a key span since their data is external. Thus the TableSpan() call panics.Additionally, this bug surprisingly crashes the node, rather than fails the query, as this panic appears to not be recovered because virtual table generators run their generation function in a separate goroutine.
Jira issue: CRDB-44699