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

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 1fb17b1903414676bd371068739549cd2966fe87
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2021-12-29T22:02:50Z
Releases: 15.0
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

Files

PathChange+/−
src/backend/postmaster/pgarch.c modified +43 −27

Discussion