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/
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? |