On Sat, Oct 1, 2022 at 9:35 AM Jeff Davis <pg...@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