On Thu Aug 21, 2025 at 7:25 PM -03, Masahiko Sawada wrote: > What about backend processes that don't have any xid or xmin (i.e., > are read-only query and in idle-in-transaction)? > > IIUC we process the notification entries at the beginning of the > server loop (see L4608 in postgres.c) and when reading a command (via > ProcessClientReadInterrupt()), but it seems to me that if a process is > in idle-in-transaction state it doesn't process the entries unless the > transaction is committed. I've reproduced the missing clog entry error > even if we have a notification on the queue with a valid listener, > with the following steps: > Ok, now we can reproduce this, thank you! So I think that we need a way to teach the VACUUM FREEZE about old xid's on async queue.
I'll work on this considering the initial Daniil comments at [1] [1] https://www.postgresql.org/message-id/CAJDiXgg1ArRB1-6wLtXfVVnQ38P9Y%2BCDfEc9M2TXiOf_4kfBMg%40mail.gmail.com -- Matheus Alcantara