Re: PANIC: wrong buffer passed to visibilitymap_clear

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-04-11T16:43:15Z
Lists: pgsql-hackers
On Sun, Apr 11, 2021 at 9:10 AM Peter Geoghegan <pg@bowt.ie> wrote:
> I don't have any reason to believe that using a super-exclusive lock
> during heap page vacuuming is necessary. My guess is that returning to
> doing it that way might make the buildfarm green again. That would at
> least confirm my suspicion that this code is relevant. The
> super-exclusive lock might have been masking the problem for a long
> time.

This isn't just any super-exclusive lock, either -- we were calling
ConditionalLockBufferForCleanup() at this point.

I now think that there is a good chance that we are seeing these
symptoms because the "conditional-ness" went away -- we accidentally
relied on that.

-- 
Peter Geoghegan



Commits

  1. Avoid improbable PANIC during heap_update.

  2. Refactor lazy_scan_heap() loop.