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

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2020-10-15T15:19:59Z
Lists: pgsql-bugs
On 2020-Sep-09, Tomas Vondra wrote:

> On Tue, Sep 08, 2020 at 06:37:29PM -0300, Alvaro Herrera wrote:
> > On 2020-Sep-08, Michael Paquier wrote:
> > 
> > > On Tue, Aug 11, 2020 at 04:04:07PM +0900, Michael Paquier wrote:
> > > > Hmm.  Creating a file for partitioned table would be a completely new
> > > > thing as well.  heap_create() has never created a file for partitioned
> > > > tables since 10 so this could open to a new class of bugs.
> > > 
> > > This thread has stalled for a couple of weeks now, and I would tend to
> > > take the path where we'd basically revert 8725958 and ca41030.  That's
> > > too late for v13 to do anything about that.  But not for 14.  Any
> > > opinions?
> > 
> > Well, naturally I oppose this idea.
> 
> Would it actually solve the issue? ISTM we'd still have to expect cases
> with partitioned tables without storage, so presumably we'd have to do
> something else ...

It just dawned on me that a way to fix this is to use a pg_shdepend
entry to protect the tablespace from being dropped.



Commits

  1. Prevent drop of tablespaces used by partitioned relations

  2. Don't create relfilenode for relations without storage