Re: BUG #10533: 9.4 beta1 assertion failure in autovacuum process

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Cc: levertond(at)googlemail(dot)com, pgsql-bugs(at)postgresql(dot)org, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Subject: Re: BUG #10533: 9.4 beta1 assertion failure in autovacuum process
Date: 2014-06-05 21:34:36
Message-ID: 20140605213436.GA17217@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On 2014-06-05 21:42:23 +0300, Heikki Linnakangas wrote:
> I think we'll need a variant of GetMultiXactIdMembers() that only returns
> the update XID, avoiding the palloc(). The straight-forward fix would be to
> copy-paste contents of GetMultiXactIdMembers() into
> MultiXactIdGetUpdateXid(), and instead of returning the members in an array,
> only return the update-xid. But it's a long and complicated function, so
> copy-pasting is not a good option. I think it needs to be refactored into
> some kind of a helper function that both MultiXactIdGetUpdateXid() and
> GetMultiXactIdMembers() could call.

While it certainly would be nice to have such a function I have my doubt
it's realistic to get it for 9.4 and the backbranches.

I haven't thought particularly much about this, but I don't really see
why the heap_page_is_all_visible() bit needs to be in a critical
section? Can't we just do that entire bit after the log_heap_clean()?
Then the heap_page_is_all_visible() can be done outside a critical
section.

Greetings,

Andres Freund

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message hannes.janetzek 2014-06-05 23:00:56 BUG #10542: infinite loop in index.c when trying to reindex system tables (probably corrupted db state)
Previous Message Heikki Linnakangas 2014-06-05 18:42:23 Re: BUG #10533: 9.4 beta1 assertion failure in autovacuum process