On Thu, Jun 10, 2021 at 9:57 AM Matthias van de Meent <boekewurm+postg...@gmail.com> wrote: > > By "matches what we expect", I meant "involves a just-aborted > > transaction". We could defensively verify that the inserting > > transaction concurrently aborted at the point of retrying/calling > > heap_page_prune() a second time. If there is no aborted transaction > > involved (as was the case with this bug), then we can be confident > > that something is seriously broken. > > I believe there are more cases than only the rolled back case, but > checking for those cases would potentially help, yes.
Why do you believe that there are other cases? I'm not aware of any case that causes lazy_scan_prune() to retry using the goto, other than the aborted transaction case I described (excluding the bug that you diagnosed, which was of course never supposed to happen). If it really is possible to observe a retry for any other reason then I'd very much like to know all the details - it might well signal a distinct bug of the same general variety. -- Peter Geoghegan