Limit memory usage of pg_walinspect functions.

Jeff Davis <jdavis@postgresql.org>

Commit: 69e8c7cf1dfa08ae099c33d0d371ad69d405903d
Author: Jeff Davis <jdavis@postgresql.org>
Date: 2023-02-20T19:07:24Z
Releases: 16.0
Limit memory usage of pg_walinspect functions.

GetWALRecordsInfo() and pg_get_wal_fpi_info() can leak memory across
WAL record iterations. Fix this by using a temporary memory context
that's reset for each WAL record iteraion.

Also a use temporary context for loops in GetXLogSummaryStats(). The
number of iterations is a small constant, so the previous behavior was
not a leak, but fix for clarity (but no need to backport).

Backport GetWALRecordsInfo() change to version
15. pg_get_wal_fpi_info() didn't exist in version 15.

Reported-by: Peter Geoghegan
Author: Bharath Rupireddy
Discussion: https://www.postgresql.org/message-id/CAH2-WznLEJjn7ghmKOABOEZYuJvkTk%3DGKU3m0%2B-XBAH%2BerPiJQ%40mail.gmail.com
Backpatch-through: 15

Files

PathChange+/−
contrib/pg_walinspect/pg_walinspect.c modified +53 −5

Discussion