Re: ERROR: found multixact from before relminmxid - Mailing list pgsql-general

From Alexandre Arruda
Subject Re: ERROR: found multixact from before relminmxid
Date
Msg-id CAGewt-vg2-AXQzWvCwEVzmPTpMDbu8wCNsFEf=0Ye0pcupvsWw@mail.gmail.com
Whole thread Raw
In response to Re: ERROR: found multixact from before relminmxid  (Andres Freund <andres@anarazel.de>)
Responses Re: ERROR: found multixact from before relminmxid
List pgsql-general
2018-04-10 19:53 GMT-03:00 Andres Freund <andres@anarazel.de>:
> On 2018-04-10 08:31:20 -0300, Alexandre Arruda wrote:
>> 2018-04-09 23:51 GMT-03:00 Peter Geoghegan <pg@bowt.ie>:
>> > On Mon, Apr 9, 2018 at 6:56 PM, Alexandre Arruda <adaldeia@gmail.com> wrote:
>> >> (... and all other indexes returns null too)
>> >>
>> >> I tried with bt_index_check too. Same results.
>> >
>> > That's interesting, because it tells me that you have a table that
>> > appears to not be corrupt, despite the CLUSTER error. Also, the error
>> > itself comes from sanity checking added to MultiXact freezing fairly
>> > recently, in commit 699bf7d0.
>> >
>> > You didn't say anything about regular VACUUM being broken. Do you find
>> > that it works without any apparent issue?
>> >
>> > I have a suspicion that this could be a subtle bug in
>> > CLUSTER/freezing. The only heap_freeze_tuple() caller is code used by
>> > CLUSTER, so it's not that hard to imagine a MultiXact freezing bug
>> > that is peculiar to CLUSTER. Though I haven't thought about it in much
>> > detail.
>> >
>> > --
>> > Peter Geoghegan
>>
>> Hi Peter,
>>
>> Actualy, I first notice the problem in logs by autovacuum:
>>
>> 2018-04-10 08:22:15.385 -03 [55477] CONTEXT:  automatic vacuum of
>> table "production.public.fn06t"
>> 2018-04-10 08:22:16.815 -03 [55477] ERROR:  found multixact 68834765
>> from before relminmxid 73262006
>>
>> production=# vacuum analyze verbose fn06t;
>> INFO:  vacuuming "public.fn06t"
>> ERROR:  found multixact 76440919 from before relminmxid 122128619
>
> What does the function in
> https://www.postgresql.org/message-id/20180319181723.ugaf7hfkluqyos5d@alap3.anarazel.de
> say about your table?
>
> Could you post pg_controldata output and
> SELECT * FROM pg_class WHERE oid = 'public.fn06t'::regclass;
> ?
>
> Greetings,
>
> Andres Freund

Hi Andres,

I install pageinspect and create the function, but it returns is null:


select * from check_rel('fn06t') limit 100;
blockno | lp | xmin
---------+----+------
(0 rows)

Other affected table:

vacuum verbose fn06t4;
INFO:  vacuuming "public.fn06t4"
ERROR:  found multixact 68834765 from before relminmxid 73262006

production=# select * from check_rel('fn06t4') limit 100;
blockno | lp | xmin
---------+----+------
(0 rows)

Best regards,

Alexandre


pgsql-general by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: psql variable to plpgsql?
Next
From: Adrian Klaver
Date:
Subject: Re: dblink: give search_path