On Wed, Apr 08, 2026 at 01:17:45PM -0400, Tom Lane wrote: > Alexander Lakhin <[email protected]> writes: >> Please look at a new anomaly, I and SQLsmith have discovered: >> SELECT (SELECT score FROM pg_stat_get_autovacuum_scores() LIMIT 1), >> (SELECT score FROM pg_stat_get_autovacuum_scores() LIMIT 1); >> ERROR: detected double pfree in PgStat Snapshot 0x5f6fa4d95d50 > > Good catch, but you're not the first: > > https://www.postgresql.org/message-id/CAHewXNkJKdwb3D5OnksrdOqzqUnXUEMpDam1TPW0vfUkW%3D7jUw%40mail.gmail.com
Hm. I can't get excited about checking pgstat_fetch_consistency (as proposed in that other report), but I see that commit 02502c1bca added the freeing behavior in question. I wonder if it makes sense to just skip freeing when relation_needs_vacanalyze() is called from the view, i.e., not an autovacuum worker. On the other hand, maybe we shouldn't be caching entries for a view like this that looks through all tables in the database... -- nathan
