> On 25 Jun 2025, at 11:11, Dmitry <dsy....@yandex.ru> wrote:
> 
>     #6  GetMultiXactIdMembers (multi=45559845, members=0x7ffdaedc84b0, 
> from_pgupgrade=<optimized out>, isLockOnly=<optimized out>)
>         at 
> /usr/src/postgresql-17-17.5-1.pgdg24.04+1/build/../src/backend/access/transam/multixact.c:1483

Hi Dmitry!

This looks to be related to work in my thread about multixacts [0]. Seems like 
CV sleep in /* Corner case 2: next multixact is still being filled in */ is not 
woken up by ConditionVariableBroadcast(&MultiXactState->nextoff_cv) from WAL 
redo.

If so - any subsequent multixact redo from WAL should unstuck reading last 
MultiXact.

Either way redo path might be not going through ConditionVariableBroadcast(). I 
will investigate this further.


Can you please check your reproduction with patch attached to this message? 
This patch simply adds timeout on CV sleep so in worst case we will fallback to 
behavior of PG 16.


Best regards, Andrey Borodin.

Attachment: 0001-Make-next-multixact-sleep-timed.patch
Description: Binary data

Reply via email to