Add test case for an archive recovery corner case.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 50e5bc582a4371a88218078a2c651d901bf87d96
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2022-02-14T09:33:57Z
Releases: 15.0
Add test case for an archive recovery corner case.

While I was working on a patch to refactor things around xlog.c, I mixed
up EndOfLogTLI and replayTLI at the end of recovery. As a result, if you
recovered to a point with a lower-numbered timeline in a WAL segment
that has a higher TLI in the filename, the end-of-recovery WAL record
was created with invalid PrevTimeLineId. I noticed that while
self-reviewing, but no tests failed. So add a test to cover that corner
case.

Thanks to Amul Sul who also submitted a test case for the same corner
case, although this patch is different from that.

Reviewed-by: Amul Sul, Michael Paquier
Discussion: https://www.postgresql.org/message-id/52bc9ccd-8591-431b-0086-15d9acf25a3f@iki.fi
Discussion: https://www.postgresql.org/message-id/CAAJ_b94Vjt5cXGza_1MkjLQWciNdEemsmiWuQj0d%3DM7JfjAa1g%40mail.gmail.com

Files

PathChange+/−
src/test/recovery/t/028_pitr_timelines.pl added +176 −0

Discussion