assert-in-lazy_scan_prune-loop.patch

text/x-patch

Filename: assert-in-lazy_scan_prune-loop.patch
Type: text/x-patch
Part: 2
Message: Re: BUG #17257: (auto)vacuum hangs within lazy_scan_prune()

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/backend/access/heap/vacuumlazy.c 3 0
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index d2c735eeda..79cec947f4 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -1717,10 +1717,13 @@ lazy_scan_prune(LVRelState *vacrel,
 	int			nfrozen;
 	OffsetNumber deadoffsets[MaxHeapTuplesPerPage];
 	xl_heap_freeze_tuple frozen[MaxHeapTuplesPerPage];
+int numretries = 0;
 
 	maxoff = PageGetMaxOffsetNumber(page);
 
 retry:
+numretries++;
+Assert(numretries < 100);
 
 	/* Initialize (or reset) page-level counters */
 	tuples_deleted = 0;