Re: Fix of fake unlogged LSN initialization

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: "tsunakawa(dot)takay(at)fujitsu(dot)com" <tsunakawa(dot)takay(at)fujitsu(dot)com>
Cc: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix of fake unlogged LSN initialization
Date: 2019-10-21 05:03:47
Message-ID: 20191021050347.GB2609@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Oct 19, 2019 at 05:03:00AM +0000, tsunakawa(dot)takay(at)fujitsu(dot)com wrote:
> The attached trivial patch fixes the initialization of the fake
> unlogged LSN. Currently, BootstrapXLOG() in initdb sets the initial
> fake unlogged LSN to FirstNormalUnloggedLSN (=1000), but the
> recovery and pg_resetwal sets it to 1. The patch modifies the
> latter two cases to match initdb.
>
> I don't know if this do actual harm, because the description of
> FirstNormalUnloggedLSN doesn't give me any idea.

From xlogdefs.h added by 9155580:
/*
* First LSN to use for "fake" LSNs.
*
* Values smaller than this can be used for special per-AM purposes.
*/
#define FirstNormalUnloggedLSN ((XLogRecPtr) 1000)

So it seems to me that you have caught a bug here, and that we had
better back-patch to v12 so as recovery and pg_resetwal don't mess up
with AMs using lower values than that.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2019-10-21 05:11:20 Re: dropdb --force
Previous Message Tom Lane 2019-10-21 05:01:50 Re: Missing error_context_stack = NULL in AutoVacWorkerMain()