From: | "Bossart, Nathan" <bossartn(at)amazon(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Vik Fearing" <vik(at)postgresfriends(dot)org>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Catalog version access |
Date: | 2022-01-24 20:40:08 |
Message-ID: | ECC45428-31C4-442E-87D7-0B8E6D5F5459@amazon.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Thanks for taking a look!
On 1/23/22, 7:31 PM, "Michael Paquier" <michael(at)paquier(dot)xyz> wrote:
> On Mon, Aug 16, 2021 at 06:12:54PM +0000, Bossart, Nathan wrote:
>> I was looking at the --check switch for the postgres binary recently
>> [0], and this sounds like something that might fit in nicely there.
>> In the attached patch, --check will also check the control file if one
>> exists.
>
> This would not work on a running postmaster as CreateDataDirLockFile()
> is called beforehand, but we want this capability, no?
I was not under the impression this was a requirement, based on the
use-case discussed upthread [0].
> Abusing a bootstrap option for this purpose does not look like a good
> idea, to be honest, especially for something only used internally now
> and undocumented, but we want to use something aimed at an external
> use with some documentation. Using a separate switch would be more
> adapted IMO.
This is the opposite of what Magnus proposed earlier [1]. Do we need
a new pg_ctl option for this? It seems like it is really only
intended for use by PostgreSQL developers, but perhaps there are other
use-cases I am not thinking of. In any case, the pg_ctl option would
probably end up using --check (or another similar mode) behind the
scenes.
> Also, I think that we should be careful with the read of
> the control file to avoid false positives? We can rely on an atomic
> read/write thanks to its maximum size of 512 bytes, but this looks
> like a lot what has been done recently with postgres -C for runtime
> GUCs, that *require* a read of the control file before grabbing the
> values we are interested in.
Sorry, I'm not following this one. In my proposed patch, the control
file (if one exists) is read after CreateDataDirLockFile(), just like
PostmasterMain().
Nathan
[0] https://postgr.es/m/20210222022407.ecaygvx2ise6uwyz%40alap3.anarazel.de
[1] https://postgr.es/m/CABUevEySovaEDci7c0DXOrV6c7JzWqYzfVwOiRUJxMao%3D9seEw%40mail.gmail.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-01-24 20:43:25 | Re: TAP tests, directories and parameters |
Previous Message | Tom Lane | 2022-01-24 20:35:25 | Re: Why is src/test/modules/committs/t/002_standby.pl flaky? |