Re: ERROR: cannot freeze committed xmax - Mailing list pgsql-general

From Alvaro Herrera
Subject Re: ERROR: cannot freeze committed xmax
Date
Msg-id 202107151336.g55vi6aj7e7m@alvherre.pgsql
Whole thread Raw
In response to ERROR: cannot freeze committed xmax  (Sasha Aliashkevich <olsender@gmail.com>)
Responses Re: ERROR: cannot freeze committed xmax  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List 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/



pgsql-general by date:

Previous
From: hubert depesz lubaczewski
Date:
Subject: Re: looping over multirange segments?
Next
From: Alvaro Herrera
Date:
Subject: Re: ERROR: cannot freeze committed xmax