Re: IPC/MultixactCreation on the Standby server - Mailing list pgsql-hackers

From Andrey Borodin
Subject Re: IPC/MultixactCreation on the Standby server
Date
Msg-id 5E591CC6-1618-462F-9645-1E6C92934DC4@yandex-team.ru
Whole thread Raw
In response to Re: IPC/MultixactCreation on the Standby server  (Dmitry <dsy.075@yandex.ru>)
Responses Re: IPC/MultixactCreation on the Standby server
List pgsql-hackers

> On 29 Jul 2025, at 12:17, Dmitry <dsy.075@yandex.ru> wrote:
>
> But on the master, some of the requests then fail with an error, apparently invalid multixact's remain in the pages.

Thanks!

That's a bug in my patch. I do not understand it yet. I've reproduced it with your original workload.
Most of errors I see are shallow (offset == 0 or nextOffset==0), but this one is interesting:

TRAP: failed Assert("shared->page_number[slotno] == pageno && shared->page_status[slotno] ==
SLRU_PAGE_WRITE_IN_PROGRESS"),File: "slru.c", Line: 729, PID: 91085 
0   postgres                            0x00000001032ea5ac ExceptionalCondition + 216
1   postgres                            0x0000000102af2784 SlruInternalWritePage + 700
2   postgres                            0x0000000102af14dc SimpleLruWritePage + 96
3   postgres                            0x0000000102ae89d4 RecordNewMultiXact + 576

So it makes me think that it's some version of IO concurrency issue.
As expected error only persists if "extend SLRU" branch is active in RecordNewMultiXact().

Thanks for testing!


Best regards, Andrey Borodin.


pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pg_dump --with-* options
Next
From: Álvaro Herrera
Date:
Subject: Re: pg_dump --with-* options