Re: pg_basebackup failure after setting default_table_access_methodoption - Mailing list pgsql-hackers

From Andres Freund
Subject Re: pg_basebackup failure after setting default_table_access_methodoption
Date
Msg-id 20190608152607.fuizlvwybaoxfvpv@alap3.anarazel.de
Whole thread Raw
In response to Re: pg_basebackup failure after setting default_table_access_methodoption  (Michael Paquier <michael@paquier.xyz>)
Responses Re: pg_basebackup failure after setting default_table_access_methodoption
List pgsql-hackers
Hi,

On 2019-06-06 16:06:36 +0900, Michael Paquier wrote:
> On Thu, Jun 06, 2019 at 11:19:48AM +1000, Haribabu Kommi wrote:
> > Thanks for the details steps to reproduce the bug, I am also able to
> > reproduce the problem.
> 
> This way is even more simple, no need for zheap to be around:
> =# create access method heap2 TYPE table HANDLER heap_tableam_handler;
> CREATE ACCESS METHOD
> And then:
> PGOPTIONS="-c default_table_access_method=heap2" psql "replication=1"
> psql: error: could not connect to server: FATAL:  cannot read pg_class
> without having selected a database

Yea, need to fix that.


> > Thanks for the patch and it fixes the problem.
> 
> I was wondering if we actually need at all a catalog lookup at this
> stage, simplifying get_table_am_oid() on the way so as we always
> throw an error (its missing_ok is here to allow a proper error in the
> GUC context).  The table AM lookup happens only when creating a table,
> so we could just get a failure when attempting to create a table with
> this incorrect value.

I think that'd be a bad plan. We check other such GUCs,
e.g. default_tablespace where this behaviour has been copied from, even
if not bulletproof.


> Actually, when updating a value and reloading and/or restarting the
> server, it is possible to easily get in a state where we have an
> invalid table AM parameter stored in the GUC, which is what the
> callback is here to avoid.

We have plenty other callbacks that aren't bulletproof, so I don't think
this is really something we should / can change in isolation here.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Guillaume Lelarge
Date:
Subject: Re: Quick doc typo fix
Next
From: Andres Freund
Date:
Subject: Re: pg_basebackup failure after setting default_table_access_methodoption