Re: ThisTimeLineID can be used uninitialized - Mailing list pgsql-hackers

From Robert Haas
Subject Re: ThisTimeLineID can be used uninitialized
Date
Msg-id CA+Tgmob8hO9LEFhHcOmk91ZaVg=VaRFjV==OTuHNiSErLOwU=w@mail.gmail.com
Whole thread Raw
In response to Re: ThisTimeLineID can be used uninitialized  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: ThisTimeLineID can be used uninitialized  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Re: ThisTimeLineID can be used uninitialized  (Michael Paquier <michael@paquier.xyz>)
List pgsql-hackers
On Tue, Oct 19, 2021 at 7:30 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Hah.  Yeah, when you can do things like that and the tests don't break,
> that indicates a problem in the tests.

I *think* the problem is actually in the code, not the tests. In other
words, from what I can tell, we copy the bogus timeline value (0, or a
random number) into several places, but then eventually overwrite all
copies of that value with a correct value before using it for
anything. So in other words I think that the comment saying that this
code is initializing values that WalSndSegmentOpen is going to need is
just wrong. I don't completely understand why it's wrong, but I think
it IS wrong.

> > Istm we should introduce an InvalidTimeLineID, and explicitly initialize
> > sendTimeLine to that, and assert that it's valid / invalid in a bunch of
> > places?
>
> That's not a bad idea; it'll help discover bogus code.  Obviously, some
> additional tests wouldn't harm -- we have a lot more coverage now than
> in embarrasingly recent past, but it can still be improved.

+1.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: cursor use vs pg_stat_statements
Next
From: Alvaro Herrera
Date:
Subject: Re: pgsql: Document XLOG_INCLUDE_XID a little better