Re: found xmin from before relfrozenxid on pg_catalog.pg_authid

From: Maxim Boguk <maxim(dot)boguk(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Peter Geoghegan <pg(at)bowt(dot)ie>, Jeremy Finzel <finzelj(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: found xmin from before relfrozenxid on pg_catalog.pg_authid
Date: 2018-05-22 18:30:43
Message-ID: CAK-MWwQEcjoD4No4-yP408+7_-4peNfJ0vYZ1LFXOyJiWtKsUw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Hi Andres,

> ​
> > Looking for possible course of action.
> > Probably simplest fix - drop and recreate these 6 affected users, but so
> > far I willing spent some time research into this issue.
>
> Could you use pageinspect to get the infomasks for the affected tuples?
>
> Greetings,
>
> Andres Freund
>

​For sample:

postgres=# vacuum pg_catalog.pg_authid;
ERROR: found xmin 2894889518 from before relfrozenxid 248712603

select ctid, xmin, xmax, cmin, cmax from pg_catalog.pg_authid where
xmin::text::bigint=2894889518;
ctid | xmin | xmax | cmin | cmax
--------+------------+------+------+------
(1,26) | 2894889518 | 0 | 0 | 0

postgres=# SELECT * FROM heap_page_items(get_raw_page('pg_authid', 1))
where t_ctid::text='(1,26)';
-[ RECORD 1
]-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lp | 26
lp_off | 4656
lp_flags | 1
lp_len | 144
t_xmin | 2894889518
t_xmax | 0
t_field3 | 0
t_ctid | (1,26)
t_infomask2 | 32779
t_infomask | 10507
t_hoff | 32
t_bits | 1111111111000000
t_oid | 189787727

Any new role created in DB instantly affected by this issue.

In the same time:

select relfrozenxid from pg_class where relname='pg_authid';
relfrozenxid
--------------
2863429136

So it's interesting where value of " from before relfrozenxid 248712603"
come from.


--
Maxim Boguk
Senior Postgresql DBA
http://dataegret.com/ <http://www.postgresql-consulting.com/>

Phone RU: +7 985 433 0000
Phone UA: +380 99 143 0000
Phone AU: +61 45 218 5678

LinkedIn: http://www.linkedin.com/pub/maksym-boguk/80/b99/b1b
Skype: maxim.boguk

"Доктор, вы мне советовали так не делать, но почему мне по-прежнему больно
когда я так делаю ещё раз?"

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andres Freund 2018-05-22 18:47:01 Re: found xmin from before relfrozenxid on pg_catalog.pg_authid
Previous Message Dmitry Igrishin 2018-05-22 17:02:05 Announcement of a new C++ API to PostgreSQL.

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2018-05-22 18:38:32 future of contrib/xml2 and xslt processing
Previous Message Tom Lane 2018-05-22 18:27:29 Re: A Japanese-unfriendy error message contruction