pgsql: Fix rare dsa_allocate() failures due to freepage.c corruption.

From: Thomas Munro <tmunro(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix rare dsa_allocate() failures due to freepage.c corruption.
Date: 2019-02-13 00:49:38
Message-ID: E1gtik6-0000V8-Gc@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix rare dsa_allocate() failures due to freepage.c corruption.

In a corner case, a btree page was allocated during a clean-up operation
that could cause the tracking of the largest contiguous span of free
space to get out of whack. That was supposed to be prevented by the use
of the "soft" flag to avoid allocating internal pages during incidental
clean-up work, but the flag was ignored in the case where the FPM was
promoted from singleton format to btree format. Repair.

Remove an obsolete comment in passing.

Back-patch to 10, where freepage.c arrived (as support for dsa.c).

Author: Robert Haas
Diagnosed-by: Thomas Munro and Robert Haas
Reported-by: Justin Pryzby, Rick Otten, Sand Stone, Arne Roland and others
Discussion: https://postgr.es/m/CAMAYy4%2Bw3NTBM5JLWFi8twhWK4%3Dk_5L4nV5%2BbYDSPu8r4b97Zg%40mail.gmail.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/2cfdf24e7c6867c768999ccd809a32d53d226d82

Modified Files
--------------
src/backend/utils/mmgr/freepage.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2019-02-13 07:06:17 Re: reducing isolation tests runtime
Previous Message Thomas Munro 2019-02-13 00:49:18 pgsql: Fix rare dsa_allocate() failures due to freepage.c corruption.