Re: PANIC: wrong buffer passed to visibilitymap_clear
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Andres Freund <andres@anarazel.de>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-04-11T15:57:50Z
Lists: pgsql-hackers
Peter Geoghegan <pg@bowt.ie> writes: > On Sat, Apr 10, 2021 at 10:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Just eyeing the evidence on hand, I'm wondering if something has decided >> it can start setting the page-all-visible bit without adequate lock, >> perhaps only in system catalogs. heap_update is clearly assuming that >> that flag won't change underneath it, and if it did, it's clear how this >> symptom would ensue. > Does this patch seem to fix the problem? Hmm ... that looks pretty suspicious, I agree, but why wouldn't an exclusive buffer lock be enough to prevent concurrency with heap_update? (I have zero faith in being able to show that this patch fixes the problem by testing, given how hard it is to reproduce. We need to convince ourselves that this is a fix by logic.) regards, tom lane
Commits
-
Avoid improbable PANIC during heap_update.
- 5f12bc94dcc6 12.7 landed
- 37e76546a2ba 13.3 landed
- 34f581c39e97 14.0 landed
-
Refactor lazy_scan_heap() loop.
- 7ab96cf6b312 14.0 cited