Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"

From: "Yunong Xiao" <yunong(at)joyent(dot)com>
To: "Heikki Linnakangas" <hlinnakangas(at)vmware(dot)com>
Cc: <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"
Date: 2013-04-11 16:52:07
Message-ID: 21949434-BC5C-40B4-9A17-8AA4D665048F@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


On Mar 27, 2013, at 12:48 PM, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> wrote:
>
> This bug was introduced by commit 8805ff6580621d0daee350826de5211d6bb36ec3, in 9.2.2 (and 9.1.7 and 9.0.11), which fixed multiple WAL replay issues with Hot Standby. Before that commit, replaying a heap update didn't try to keep both buffers locked at the same time, which is necessary for the correctness of hot standby. The patch fixed that, but missed releasing the old buffer in this corner case. I was not able to come up with a scenario with full_page_writes=on where this would fail, but I'm also not 100% sure it can't happen.
>
> I scanned through the commit, and couldn't see any other instances of this kind of a bug. heap_xlog_update is more complicated than other redo functions, with all the return statements inside it. It could use some refactoring, but for now, I'll commit the attached small fix.
>
> - Heikki
> <fix-heap-update-redo-buffer-leak.patch>

Heikki:

Is it safe to apply the patch you attached? We'd really like to roll out this fix to production instead of waiting for this to be released as a postgres minor version update.

-Yunong

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2013-04-11 17:45:13 Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"
Previous Message John R Pierce 2013-04-10 19:32:24 Re: BUG #8056: postgres forgets hstore over time