Add test case for an archive recovery corner case.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 14 Feb 2022 09:33:57 +0000 (11:33 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 14 Feb 2022 09:33:57 +0000 (11:33 +0200)
commit50e5bc582a4371a88218078a2c651d901bf87d96
treee4f49d0ed9db664c3b5617df1c6e5baa6c70bcf7
parent1383d52faa47190460b4dde63b69c944f2860b72
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
src/test/recovery/t/028_pitr_timelines.pl [new file with mode: 0644]