> On 19 Mar 2026, at 23:11, Heikki Linnakangas <[email protected]> wrote:
>
> :-(. This is a gift that keeps giving.
Well, maybe, we could leaving that deadlock in place for some time...
> Idea 3:
>
> I think a better fix is to accept that our tracking is a little imprecise and
> use SimpleLruDoesPhysicalPageExist() to check if the page exists. I suspect
> that's too expensive to do on every RecordNewMultiXact() call that crosses a
> page, but perhaps we could do it once at StartupMultiXact().
>
> Or perhaps track last-zeroed page separately from latest_page_number, and if
> we haven't seen any XLOG_MULTIXACT_ZERO_OFF_PAGE records yet after startup,
> call SimpleLruDoesPhysicalPageExist() to determine if initialization is
> needed. Attached patch does that.
SimpleLruDoesPhysicalPageExist() does not detect recently zeroed pages via
buffers, because it goes directly to FS.
I tried this approach when implementing deadlock fix, it did not work for me.
Best regards, Andrey Borodin.