Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder() - Mailing list pgsql-bugs

From Masahiko Sawada
Subject Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()
Date
Msg-id CAD21AoB-H_rWRbRV5LhdJvgUVn9k=F1TRfugfwPrziue+VvwcQ@mail.gmail.com
Whole thread Raw
In response to Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()  (Andres Freund <andres@anarazel.de>)
Responses Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()  (Andres Freund <andres@anarazel.de>)
List pgsql-bugs
On Mon, Aug 21, 2023 at 6:05 AM Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
>
> I think the real problem is that 272248a0c added InitialRunningXacts a global
> variable. If it just lived in in struct SnapBuild, this whole thing wouldn't
> be an issue? The commit justified this choice with avoiding an ABI breakage -
> but isn't that bogus? The struct is private to snapbuild.c. It doesn't live on
> disk (that's SnapBuildOnDisk).

No, since SnapBuildOnDisk contains SnapBuild, if we add something to
SnapBuild, the on-disk format compatibility would break. See:

/*
 * We store current state of struct SnapBuild on disk in the following manner:
 *
 * struct SnapBuildOnDisk;
 * TransactionId * running.xcnt_space;
 * TransactionId * committed.xcnt; (*not xcnt_space*)
 *
 */
typedef struct SnapBuildOnDisk
{
    /* first part of this struct needs to be version independent */

    /* data not covered by checksum */
    uint32      magic;
    pg_crc32c   checksum;

    /* data covered by checksum */

    /* version, in case we want to support pg_upgrade */
    uint32      version;
    /* how large is the on disk data, excluding the constant sized part */
    uint32      length;

    /* version dependent part */
    SnapBuild   builder;
:

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



pgsql-bugs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: BUG #17994: Invalidating relcache corrupts tupDesc inside ExecEvalFieldStoreDeForm()
Next
From: Amit Kapila
Date:
Subject: Re: BUG #18055: logical decoding core on AllocateSnapshotBuilder()