On Mon, Jul 12, 2021 at 5:28 PM Ashutosh Bapat <ashutosh.ba...@enterprisedb.com> wrote: > > On Mon, Jul 12, 2021 at 8:39 AM Amit Kapila <amit.kapil...@gmail.com> wrote: >> >> I have noticed that >> a nearby function LogicalIncreaseRestartDecodingForSlot() logs similar >> information after releasing spinlock, so it is better to follow the >> same here as well. > > > Now that you mention it, the code their looks rather suspicious :) > We acquire the spinlock at the beginning of the function but do not release > it if (restart_lsn <= slot->data.restart_lsn) or if (current_lsn <= > slot->data.confirmed_flush). >
Note that we end else if with (current_lsn <= slot->data.confirmed_flush) and after that there is a new if. We release lock in both the if/else conditions, so the code is fine as it is. -- With Regards, Amit Kapila.