From: | Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix buffer pin leak in heap update redo routine. |
Date: | 2013-03-27 20:06:51 |
Message-ID: | E1UKwcV-0004Ag-Mh@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix buffer pin leak in heap update redo routine.
In a heap update, if the old and new tuple were on different pages, and the
new page no longer existed (because it was subsequently truncated away by
vacuum), heap_xlog_update forgot to release the pin on the old buffer. This
bug was introduced by the "Fix multiple problems in WAL replay" patch,
commit 3bbf668de9f1bc172371681e80a4e769b6d014c8 (on master branch).
With full_page_writes=off, this triggered an "incorrect local pin count"
error later in replay, if the old page was vacuumed.
This fixes bug #7969, reported by Yunong Xiao. Backpatch to 9.0, like the
commit that introduced this bug.
Branch
------
REL9_2_STABLE
Details
-------
http://git.postgresql.org/pg/commitdiff/1b315c539134069453379bbd2f306deb6d30af01
Modified Files
--------------
src/backend/access/heap/heapam.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2013-03-27 21:05:26 | Re: [COMMITTERS] pgsql: Allow external recovery_config_directory |
Previous Message | Simon Riggs | 2013-03-27 19:08:15 | Re: [COMMITTERS] pgsql: Allow external recovery_config_directory |