Re: ERROR: cannot freeze committed xmax

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Sasha Aliashkevich <olsender(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ERROR: cannot freeze committed xmax
Date: 2021-07-15 13:36:27
Message-ID: 202107151336.g55vi6aj7e7m@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Sasha

On 2021-Jul-14, Sasha Aliashkevich wrote:

> lp | ctid | xmin | xmax | xmax_is_lock | xmax_committed | xmax_rolled_back | xmax_multixact
> ----+---------+-----------+------+--------------+----------------+------------------+----------------
> 19 | (75,21) | 571 | 572 | f | f | t | f
> 21 | (75,21) | 572 | 0 | f | f | t | f

Yeah, row 19 here is dead and should have been removed by vacuum (same
with the ones in pg_depend). I don't know why it wasn't. If you query
the tables
SELECT * FROM pg_proc WHERE ctid = '(75,19)'
are they visible? They shouldn't. If they are visible, maybe try to
UPDATE them, again by ctid; perhaps that will kill them for good. But
since the txid_status() returns committed, that likely won't work.

Maybe if you try to VACUUM by setting vacuum_freeze_min_age to a high
value (so that it doesn't try to freeze, but only remove them) they are
removed?

(I didn't verify that the values you &-mask the infomask with are
correct.)

--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2021-07-15 13:41:18 Re: ERROR: cannot freeze committed xmax
Previous Message hubert depesz lubaczewski 2021-07-15 12:15:09 Re: looping over multirange segments?