Re: [HACKERS] WAL logging problem in 9.4.3?

From: Noah Misch <noah(at)leadboat(dot)com>
To: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
Cc: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Michael Paquier <michael(at)paquier(dot)xyz>
Subject: Re: [HACKERS] WAL logging problem in 9.4.3?
Date: 2020-02-18 08:53:37
Message-ID: 20200218085337.GB3781216@rfd.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Feb 18, 2020 at 03:56:15PM +1300, Thomas Munro wrote:
> CREATE TYPE priv_testtype1 AS (a int, b text);
> +ERROR: relation 24844 deleted while still in use
> REVOKE USAGE ON TYPE priv_testtype1 FROM PUBLIC;
>
> https://ci.appveyor.com/project/postgresql-cfbot/postgresql/build/1.0.79923
>
> It didn't fail on the same OS a couple of days earlier:
>
> https://ci.appveyor.com/project/postgresql-cfbot/postgresql/builds/30829686

Thanks for the report. This reproduces consistently under
CLOBBER_CACHE_ALWAYS (which, coincidentally, I started today). Removing the
heap_create() change fixes it. Since we now restore a saved rd_createSubid,
the heap_create() change is obsolete. My next version will include that fix.

The system uses rd_createSubid to mean two things. First, rd_node is new.
Second, the rel might not yet be in catalogs, so we can't rebuild its relcache
entry. The first can be false while the second is true, hence this failure.
However, the second is true in a relatively-narrow period in which we don't
run arbitrary user code. Hence, that simple fix suffices.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2020-02-18 08:54:43 Re: Clean up some old cruft related to Windows
Previous Message Amit Kapila 2020-02-18 08:16:41 Re: logical decoding : exceeded maxAllocatedDescs for .spill files