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-11T17:55:30Z
Lists: pgsql-hackers
I wrote: > I'm now inclined to think that we should toss every single line of that > code, take RelationGetBufferForTuple out of the equation, and have just > *one* place that rechecks for PageAllVisible having just become set. > It's a rare enough case that optimizing it is completely not worth the > code complexity and risk (er, reality) of hard-to-locate bugs. Alternatively, we could do what you suggested and redefine things so that one is only allowed to set the all-visible bit while holding superexclusive lock; which again would allow an enormous simplification in heap_update and cohorts. Either way, it's hard to argue that heap_update hasn't crossed the complexity threshold where it's impossible to maintain safely. We need to simplify it. 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