aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2021-06-20 18:14:00 -0700
committerPeter Geoghegan <pg@bowt.ie>2021-06-20 18:14:00 -0700
commite8f201ab82be234b2f103234cf9f262f9afeaeba (patch)
tree8f67edc905e5a192fea4db301a49bd342c0e3060
parent96795176810b979a2bf1f4563bdcb161679d5b95 (diff)
downloadpostgresql-e8f201ab82be234b2f103234cf9f262f9afeaeba.tar.gz
postgresql-e8f201ab82be234b2f103234cf9f262f9afeaeba.zip
Remove overzealous VACUUM failsafe assertions.
The failsafe can trigger when index processing is already disabled. This can happen when VACUUM's INDEX_CLEANUP parameter is "off" and the failsafe happens to trigger. Remove assertions that assume that index processing is directly tied to the failsafe. Oversight in commit c242baa4, which made it possible for the failsafe to trigger in a two-pass strategy VACUUM that has yet to make its first call to lazy_vacuum_all_indexes().
-rw-r--r--src/backend/access/heap/vacuumlazy.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 7062d2dbd1a..44f198398c1 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -1162,7 +1162,8 @@ lazy_scan_heap(LVRelState *vacrel, VacuumParams *params, bool aggressive)
* There is a similar check inside lazy_vacuum_all_indexes(), but
* relfrozenxid might start to look dangerously old before we reach
* that point. This check also provides failsafe coverage for the
- * one-pass strategy case.
+ * one-pass strategy, and the two-pass strategy with the index_cleanup
+ * param set to 'off'.
*/
if (blkno - next_failsafe_block >= FAILSAFE_EVERY_PAGES)
{
@@ -2611,9 +2612,6 @@ lazy_check_wraparound_failsafe(LVRelState *vacrel)
if (unlikely(vacuum_xid_failsafe_check(vacrel->relfrozenxid,
vacrel->relminmxid)))
{
- Assert(vacrel->do_index_vacuuming);
- Assert(vacrel->do_index_cleanup);
-
vacrel->failsafe_active = true;
/* Disable index vacuuming, index cleanup, and heap rel truncation */