Re: pgsql: Avoid improbable PANIC during heap_update.
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Jaime Casanova <jcasanov@systemguards.com.ec>, pgsql-committers@lists.postgresql.org
Date: 2022-10-01T16:53:59Z
Lists: pgsql-hackers
On Sat, Oct 1, 2022 at 9:35 AM Jeff Davis <pgsql@j-davis.com> wrote: > Doesn't that deal with the case you brought up directly? heap_delete() > can't get the exclusive lock until VACUUM releases its cleanup lock, at > which point all-visible will be set. Then heap_delete() should notice > in line 2509 and then pin the VM buffer. Right? I now believe that you're right. I don't think that this code was ever designed to rely on cleanup locks in any way; that was kind of an accident all along. Even still, I'm not sure how I missed such an obvious thing. Sorry for the misdirection. Still, there has to be *some* reason why the bug could repro on 13. -- Peter Geoghegan
Commits
-
Avoid improbable PANIC during heap_update, redux.
- 2dc2e4e31adb 16.0 landed
- e7bd2d671249 12.13 landed
- b93d7e6883d6 14.6 landed
- 92941f26435c 13.9 landed
- 2267085c1688 15.0 landed
-
Fix race condition where heap_delete() fails to pin VM page.
- 163b0993a162 16.0 cited
-
Avoid improbable PANIC during heap_update.
- 34f581c39e97 14.0 cited