Thread: pgsql: pgstat: Use correct lock level in pgstat_drop_all_entries().

pgsql: pgstat: Use correct lock level in pgstat_drop_all_entries().

From
Andres Freund
Date:
pgstat: Use correct lock level in pgstat_drop_all_entries().

Previously we didn't, which lead to an assertion failure when resetting
partially loaded statistics. This was encountered on the buildfarm, for
as-of-yet unknown reasons.

Ttighten up a validity check when reading the stats file, verifying 'E'
signals the end of the file (rather than just stopping reading). That's then
used in a test appending to the stats file that crashed before the fix in
pgstat_drop_all_entries().

Reported by buildfarm animals mylodon and kestrel, via Tom Lane.

Discussion: https://postgr.es/m/1656446.1650043715@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4a736a161c306fcfed970e6b649f2f03f465ac24

Modified Files
--------------
src/backend/utils/activity/pgstat.c       |  4 ++++
src/backend/utils/activity/pgstat_shmem.c |  2 +-
src/test/recovery/t/029_stats_restart.pl  | 30 ++++++++++++++++++++++++++++--
3 files changed, 33 insertions(+), 3 deletions(-)