Re: Somebody has not thought through subscription locking considerations - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Somebody has not thought through subscription locking considerations
Date
Msg-id 12424.1490984611@sss.pgh.pa.us
Whole thread Raw
In response to Re: Somebody has not thought through subscription lockingconsiderations  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
List pgsql-hackers
Petr Jelinek <petr.jelinek@2ndquadrant.com> writes:
> On 31/03/17 19:35, Tom Lane wrote:
>> At the very least, it would be a good idea to exclude the system
>> catalogs from logical replication, wouldn't it?

> They are excluded.

Well, the exclusion is apparently not checked early enough.  I would say
that touches of system catalogs should never result in any attempts to
access the logical relation infrastructure, but what we have here is
such an access.

> The problematic part is that the pg_subscription_rel manipulation
> functions acquire ShareRowExclusiveLock and not the usual
> RowExclusiveLock because there were some worries about concurrency.

No, the problematic part is that there is any heap_open happening at
all.  That open could very easily result in a recursive attempt to read
pg_class, for example, which is going to be fatal if we're in the midst
of vacuum full'ing or reindex'ing pg_class.  It's frankly astonishing
to me that this patch seems to have survived testing under
CLOBBER_CACHE_ALWAYS, because it's only the catalog caches that are
preventing such recursive lookups.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Feike Steenbergen
Date:
Subject: [BUGS] BUG #14600: Passwords in user mappings leaked by psql \deu+ command
Next
From: Pavan Deolasee
Date:
Subject: Re: Patch: Write Amplification Reduction Method (WARM)