Re: [BUG]"FailedAssertion" reported in lazy_scan_heap() when running logical replication

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>
Cc: "Amit(dot)Kapila(at)fujitsu(dot)com" <Amit(dot)Kapila(at)fujitsu(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [BUG]"FailedAssertion" reported in lazy_scan_heap() when running logical replication
Date: 2021-04-29 04:21:43
Message-ID: CAH2-WzmvKdsdfi+cfTQL6OMNNWuE+ggtHmnne4VCeboBuWGYDg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Apr 28, 2021 at 7:34 PM tanghy(dot)fnst(at)fujitsu(dot)com
<tanghy(dot)fnst(at)fujitsu(dot)com> wrote:
> >TRAP: FailedAssertion("!all_visible_according_to_vm || prunestate.all_visible", File: "vacuumlazy.c", Line: 1347, PID: 1274675)
>
> BTW, in asynchronous mode, the same problem can also happen but in a low frequency.(I tried many times, but the problem happened only 2 times)
> As for synchronous mode, I found it seems easier to reproduce the problem with setting "autovacuum_naptime = 1".
> But it still can't be 100% to reproduced it. (I tested it 5 times, 3 of them reproduced it.)

Is setting all_visible_according_to_vm false as below enough to avoid
the assertion failure?

diff --git a/src/backend/access/heap/vacuumlazy.c
b/src/backend/access/heap/vacuumlazy.c
index c3fc12d76c..76c17e063e 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -1146,6 +1146,7 @@ lazy_scan_heap(LVRelState *vacrel, VacuumParams
*params, bool aggressive)
{
ReleaseBuffer(vmbuffer);
vmbuffer = InvalidBuffer;
+ all_visible_according_to_vm = false;
}

/* Remove the collected garbage tuples from table and indexes */

--
Peter Geoghegan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Justin Pryzby 2021-04-29 04:24:04 Re: [PATCH] force_parallel_mode and GUC categories
Previous Message David Rowley 2021-04-29 04:19:03 Re: Use simplehash.h instead of dynahash in SMgr