On Mon, Sep 15, 2025 at 8:11 PM suyu.cmj <mengjuan.cmj@alibaba-inc.com> wrote:
>
>
> Additionally, while studying the InvalidatePossiblyObsoleteSlot(), I noticed a behavioral difference between PG15
(andearlier) and PG16 (and later). In PG15 and earlier, while attempting to acquire a slot, if the slot's restart_lsn
advancedto be greater than oldestLSN, the slot would not be marked invalid. Starting in PG16, whether a slot is marked
invalidis 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.