Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2" - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"
Date
Msg-id 6994.1365702313@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"  ("Yunong Xiao" <yunong@joyent.com>)
Responses Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"  ("Yunong Xiao" <yunong@joyent.com>)
List pgsql-bugs
"Yunong Xiao" <yunong@joyent.com> writes:
> On Mar 27, 2013, at 12:48 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
>> This bug was introduced by commit 8805ff6580621d0daee350826de5211d6bb36ec3, in 9.2.2 (and 9.1.7 and 9.0.11), which
fixedmultiple WAL replay issues with Hot Standby. Before that commit, replaying a heap update didn't try to keep both
bufferslocked at the same time, which is necessary for the correctness of hot standby. The patch fixed that, but missed
releasingthe old buffer in this corner case. I was not able to come up with a scenario with full_page_writes=on where
thiswould 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
complicatedthan 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
forthis to be released as a postgres minor version update. 

Eh?  That patch *is* in the latest minor versions.

            regards, tom lane

pgsql-bugs by date:

Previous
From: "Yunong Xiao"
Date:
Subject: Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"
Next
From: "Yunong Xiao"
Date:
Subject: Re: BUG #7969: Postgres Recovery Fatal With: "incorrect local pin count:2"