Re: segmentation fault using currtid and partitioned tables - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: segmentation fault using currtid and partitioned tables
Date
Msg-id 20200522233257.GA27824@alvherre.pgsql
Whole thread Raw
In response to Re: segmentation fault using currtid and partitioned tables  (Michael Paquier <michael@paquier.xyz>)
Responses Re: segmentation fault using currtid and partitioned tables  (Michael Paquier <michael@paquier.xyz>)
Re: segmentation fault using currtid and partitioned tables  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On 2020-Apr-09, Michael Paquier wrote:

> Playing more with this stuff, it happens that we have zero code
> coverage for currtid() and currtid2(), and the main user of those
> functions I can find around is the ODBC driver:
> https://coverage.postgresql.org/src/backend/utils/adt/tid.c.gcov.html

Yeah, they're there solely for ODBC as far as I know.

> There are multiple cases to consider, particularly for views:
> - Case of a view with ctid as attribute taken from table.
> - Case of a view with ctid as attribute with incorrect attribute
> type.
> It is worth noting that all those code paths can trigger various
> elog() errors, which is not something that a user should be able to do
> using a SQL-callable function.  There are also two code paths for
> cases where a view has no or more-than-one SELECT rules, which cannot
> normally be reached.

> All in that, I propose something like the attached to patch the
> surroundings with tests to cover everything I could think of, which I
> guess had better be backpatched?

I don't know, but this stuff is so unused that your patch seems
excessive ... and I think we'd rather not backpatch something so large.
I propose we do something less invasive in the backbranches, like just
throw elog() errors (nothing fancy) where necessary to avoid the
crashes.  Even for pg12 it seems that that should be sufficient.

For pg13 and beyond, I liked Tom's idea of installing dummy functions
for tables without storage -- that seems safer.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: "Jonathan S. Katz"
Date:
Subject: Re: password_encryption default
Next
From: Peter Geoghegan
Date:
Subject: Re: xid wraparound danger due to INDEX_CLEANUP false