From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Andres Freund <andres@anarazel.de>
Cc: Alexandre Garcia <alexandre@vmfarms.com>
Cc: pgsql-admin@postgresql.org <pgsql-admin@postgresql.org>
Subject: Re: postgresql 9.6 - cannot freeze committed xmax
Date: Wed, 28 Feb 2018 19:56:43 -0300
Message-ID: <20180228225643.trwxqmovq4uflf4f@alvherre.pgsql> (raw)
In-Reply-To: <20180228212401.6yoqyv2a45zv7ph6@alap3.anarazel.de>
Andres Freund wrote:
> Alvaro,
>
> On 2018-02-28 21:17:08 +0000, Alexandre Garcia wrote:
> > Oh yes sorry => `ERROR: cannot freeze committed xmax 43076385` on that
> > same table
>
> In light of
> Latest checkpoint's NextXID: 0/128653693
> I find this confusing.
Ooh.
If you SELECT FOR UPDATE a tuple in 9.2, bit 0x0040 gets set in
infomask, and nothing else. If you pg_upgrade and later try to freeze
such a tuple, it will fail with the error reported.
The correct test to use is HEAP_XMAX_IS_LOCKED_ONLY, which also tests
for the above condition.
I will verify this theory and push a patch shortly, if it proves
correct.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: alvherre@alvh.no-ip.org, andres@anarazel.de, alexandre@vmfarms.com
Subject: Re: postgresql 9.6 - cannot freeze committed xmax
In-Reply-To: <20180228225643.trwxqmovq4uflf4f@alvherre.pgsql>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox