From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Andres Freund <andres(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: all_visible replay aborting due to uninitialized pages |
Date: | 2013-09-23 11:41:16 |
Message-ID: | 524028DC.60800@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 06.06.2013 17:22, Robert Haas wrote:
> On Thu, May 30, 2013 at 2:29 AM, Andres Freund<andres(at)2ndquadrant(dot)com> wrote:
>>> Yeah, I think it's fine. The patch also looks fine, although I think
>>> the comments could use a bit of tidying. I guess we need to
>>> back-patch this all the way back to 8.4? It will require some
>>> adjustments for the older branches.
>>
>> I think 9.2 is actually far enough and it should apply there. Before
>> that we only logged the unsetting of all_visible via
>> heap_(inset|update|delete)'s wal records not the setting as far as I can
>> tell. So I don't immediately see a danger< 9.2.
>
> OK. I have committed this. For 9.2, I had to backport
> log_newpage_buffer() and use XLByteEQ rather than ==.
I'm afraid this patch was a few bricks shy of a load. The
log_newpage_buffer() function asserts that:
> /* We should be in a critical section. */
> Assert(CritSectionCount > 0);
But the call in vacuumlazy.c is not inside a critical section. Also, the
comments in log_newpage_buffer() say that the caller should mark the
buffer dirty *before* calling log_newpage_buffer(), but in vacuumlazy.c,
it's marked dirty afterwards. I'm not sure what consequences that might
have, but at least it contradicts the comment.
(spotted this while working on a patch, and ran into the assertion on
crash recovery)
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2013-09-23 12:06:05 | Re: pgbench progress report improvements - split 3 |
Previous Message | Amit Khandekar | 2013-09-23 09:48:16 | Re: Assertions in PL/PgSQL |