Skip to content

Commit 4abf411

Browse files
pg_stat_io: Don't flag extends by autovacuum launcher
pg_stat_io asserts on unexpected combinations of backend type and IOOp. These combinations were meant to help detect bugs given our current understanding of the system -- not serve as a set of rules for what is allowed. The autovacuum launcher scans catalog tables and may on-access prune them. This previously wouldn't have led to any extends of the relation, but now that on-access pruning may pin a page of the visibility map (4f7ecca), scanning tables may lead to extending the visibility map. This would cause the launcher to trip an assert. Since there is no reason to forbid the launcher from doing extends, remove it from the list of backend type pgstat_tracks_io_op flags for doing IOOP_EXTEND. Read-only catalog scans still don't let pruning set the VM; doing so needs table AM API changes and is left for the future. Reported-by: Ewan Young <kdbase.hack@gmail.com> Discussion: https://postgr.es/m/CAON2xHNOyaN9MCZohhD_NL6as3QVhGA0SOn2Hyi9w6+Y-_1bFA@mail.gmail.com
1 parent 56b2792 commit 4abf411

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

src/backend/utils/activity/pgstat_io.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,8 +497,8 @@ pgstat_tracks_io_op(BackendType bktype, IOObject io_object,
497497
(io_op == IOOP_EVICT || io_op == IOOP_HIT)))
498498
return false;
499499

500-
if ((bktype == B_AUTOVAC_LAUNCHER || bktype == B_BG_WRITER ||
501-
bktype == B_CHECKPOINTER) && io_op == IOOP_EXTEND)
500+
if ((bktype == B_BG_WRITER || bktype == B_CHECKPOINTER) &&
501+
io_op == IOOP_EXTEND)
502502
return false;
503503

504504
/*

0 commit comments

Comments
 (0)