Thread: pgsql: Fix issues in pgarch's new directory-scanning logic.

pgsql: Fix issues in pgarch's new directory-scanning logic.

From
Tom Lane
Date:
Fix issues in pgarch's new directory-scanning logic.

The arch_filenames[] array elements were one byte too small, so that
a maximum-length filename would get corrupted if another entry
were made after it.  (Noted by Thomas Munro, fix by Nathan Bossart.)

Move these arrays into a palloc'd struct, so that we aren't wasting
a few kilobytes of static data in each non-archiver process.

Add a binaryheap_reset() call to make it plain that we start the
directory scan with an empty heap.  I don't think there's any live
bug of that sort, but it seems fragile, and this is very cheap
insurance.

Cleanup for commit beb4e9ba1, so no back-patch needed.

Discussion: https://postgr.es/m/CA+hUKGLHAjHuKuwtzsW7uMJF4BVPcQRL-UMZG_HM-g0y7yLkUg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1fb17b1903414676bd371068739549cd2966fe87

Modified Files
--------------
src/backend/postmaster/pgarch.c | 70 +++++++++++++++++++++++++----------------
1 file changed, 43 insertions(+), 27 deletions(-)