On Mon, Sep 15, 2025 at 8:11 PM suyu.cmj <mengjuan....@alibaba-inc.com> wrote: > > > Additionally, while studying the InvalidatePossiblyObsoleteSlot(), I noticed > a behavioral difference between PG15 (and earlier) and PG16 (and later). In > PG15 and earlier, while attempting to acquire a slot, if the slot's > restart_lsn advanced to be greater than oldestLSN, the slot would not be > marked invalid. Starting in PG16, whether a slot is marked invalid is > determined solely based on initial_restart_lsn, even if the slot's > restart_lsn advances above oldestLSN while waiting, the slot will still be > marked invalid. The initial_restart_lsn is recorded to report the correct > invalidation cause (see discussion [2]), but why not decide whether to mark > the slot as invalid based on the slot's current restart_lsn? If a slot's > restart_lsn has already advanced sufficiently, shouldn't we refrain from > invalidating it? >
I haven't tried to reproduce it but I see your point. I agree that if this is happening then we should not invalidate such slots. This is a different problem related to a different commit than what is fixd as 2090edc6f32f652a2c. I suggest you to either start a new thread for this or report in the original thread where this change was made. -- With Regards, Amit Kapila.