Re: BUG #17903: There is a bug in the KeepLogSeg()

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: nathandbossart(at)gmail(dot)com
Cc: zhjwpku(at)gmail(dot)com, xu(dot)xw2008(at)163(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #17903: There is a bug in the KeepLogSeg()
Date: 2023-04-21 01:42:31
Message-ID: 20230421.104231.1594652765237022266.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

At Thu, 20 Apr 2023 15:02:42 -0700, Nathan Bossart <nathandbossart(at)gmail(dot)com> wrote in
> I wonder if it'd be better to instead change
>
> if (currSegNo - segno > slot_keep_segs)
> to
> if (currSegNo > segno + slot_keep_segs)
>
> and
>
> if (currSegNo - segno < keep_segs)
> to
> if (currSegNo < segNo + keep_segs)
>
> If segno > currSegNo, the first conditional would be false as expected, and
> the second would be true as expected. We could also use
> pg_sub_u64_overflow() to detect underflow, but that might be excessive in
> this case.

From what I understand, the XLogSegNo calculations are designed
without considering the actual value range. Basically, it assumes that
(XLogSegNo + <any positive int>) can overflow. If we take the actual
value range into account, we can make that change.

The choice lies on whether we assume the actual value range or not.

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kyotaro Horiguchi 2023-04-21 03:02:20 Re: pg_basebackup: errors on macOS on directories with ".DS_Store" files
Previous Message Tom Lane 2023-04-20 23:31:18 Re: Assert failure with ICU support