From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Subject: Re: PANIC: wrong buffer passed to visibilitymap_clear
Date: Sun, 11 Apr 2021 11:57:50 -0400
Message-ID: <2679216.1618156670@sss.pgh.pa.us> (raw)
In-Reply-To: <CAH2-WzmWOLaWhQgEC1BJN0JZpOCOwxCAhjmd2Nd4yh4wrqju8Q@mail.gmail.com>
References: <2247102.1618008027@sss.pgh.pa.us>
<20210409232739.sazp5p4xnnagrusa@alap3.anarazel.de>
<20210409233203.3khg3s5iw34g4xrc@alap3.anarazel.de>
<2644575.1618117467@sss.pgh.pa.us>
<CAH2-WzmWOLaWhQgEC1BJN0JZpOCOwxCAhjmd2Nd4yh4wrqju8Q@mail.gmail.com>
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tgl@sss.pgh.pa.us, pg@bowt.ie, andres@anarazel.de, pgsql-hackers@lists.postgresql.org
Subject: Re: PANIC: wrong buffer passed to visibilitymap_clear
In-Reply-To: <2679216.1618156670@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox