Re: BUG #16577: Segfault on altering a table located in a dropped tablespace

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2020-10-30T04:13:06Z
Lists: pgsql-bugs
On Wed, Oct 28, 2020 at 09:59:24AM -0400, Tom Lane wrote:
> Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
>> I haven't started on this one yet, but I intend to do so shortly.

Cool.  Glad to hear that.

>> Strictly speaking, we can still introduce a new category of pg_shdepend
>> entries in back branches; it won't break anything that works today.
>
> Yeah, as long as the patched version won't actively fail when those
> pg_shdepend entries are missing, I don't think a backpatch is too
> hazardous.  It might be worth checking that the extra entries don't
> create huge problems if one does downgrade after some of them exist
> --- but my feeling for how that mechanism works is that it'd Just
> Work, and indeed provide the missing DROP protection even without
> explicit action by the backend.

Good point.  Even with that, we have never considered the case of a
downgrade as something actually supported, right?  We had in the past
for example bug fixes that involve slight tweaks in the WAL records
that are upward-compatible, changing the way these get interpreted
when replayed, but it could be possible to finish with logical
corruptions or replay failures if a downgraded version replays a
slightly-modified record generated by a newer version, no?
--
Michael

Commits

  1. Prevent drop of tablespaces used by partitioned relations

  2. Don't create relfilenode for relations without storage