Thread: [HACKERS] Wrong variable type in KeepLogSeg
Hello, I found a variable definition with wrong type specification in KeepLogSeg, which doesn't harm anything. > static void > KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo) > { > ... > /* then check whether slots limit removal further */ > if (max_replication_slots > 0 && keep != InvalidXLogRecPtr) > { > XLogRecPtr slotSegNo; > > XLByteToSeg(keep, slotSegNo); slotSegNo should be a XLogSegNo. Both types share the same intrinsic type so it doesn't harm anything. This is back-patchable upto 9.4. regards, -- Kyotaro Horiguchi NTT Open Source Software Center diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 5016273..8973583 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9263,7 +9263,7 @@ KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo) /* then check whether slots limit removal further*/ if (max_replication_slots > 0 && keep != InvalidXLogRecPtr) { - XLogRecPtr slotSegNo; + XLogSegNo slotSegNo; XLByteToSeg(keep, slotSegNo);
On Tue, Feb 28, 2017 at 11:17 AM, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> wrote: > slotSegNo should be a XLogSegNo. Both types share the same > intrinsic type so it doesn't harm anything. Nice catch! -- Michael
At Tue, 28 Feb 2017 12:17:07 +0900, Michael Paquier <michael.paquier@gmail.com> wrote in <CAB7nPqQvBPno0wJe1rK3tFB_m1VNEPX4fV6dOZmddAfMV+KB0Q@mail.gmail.com> > On Tue, Feb 28, 2017 at 11:17 AM, Kyotaro HORIGUCHI > <horiguchi.kyotaro@lab.ntt.co.jp> wrote: > > slotSegNo should be a XLogSegNo. Both types share the same > > intrinsic type so it doesn't harm anything. > > Nice catch! Thanks! -- Kyotaro Horiguchi NTT Open Source Software Center
On Tue, Feb 28, 2017 at 3:17 AM, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> wrote:
Hello, I found a variable definition with wrong type
specification in KeepLogSeg, which doesn't harm anything.
> static void
> KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo)
> {
> ...
> /* then check whether slots limit removal further */
> if (max_replication_slots > 0 && keep != InvalidXLogRecPtr)
> {
> XLogRecPtr slotSegNo;
>
> XLByteToSeg(keep, slotSegNo);
slotSegNo should be a XLogSegNo. Both types share the same
intrinsic type so it doesn't harm anything.
This is back-patchable upto 9.4.
Nice catch. Applied and backpatched.
At Tue, 28 Feb 2017 12:21:01 +0100, Magnus Hagander <magnus@hagander.net> wrote in <CABUevExG87_5PsnB9cdg+LEkEUMC2_Gm6d_twrTmUbSnsFX+0A@mail.gmail.com> magnus> > Hello, I found a variable definition with wrong type magnus> > specification in KeepLogSeg, which doesn't harm anything. magnus> magnus> Nice catch. Applied and backpatched. Thank you for committing. regards, -- Kyotaro Horiguchi NTT Open Source Software Center