Re: Race condition in recovery?
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: dilipbalaut@gmail.com
Cc: robertmhaas@gmail.com, pgsql-hackers@lists.postgresql.org,
hlinnaka@iki.fi
Date: 2021-05-27T06:39:29Z
Lists: pgsql-hackers
At Thu, 27 May 2021 11:44:47 +0530, Dilip Kumar <dilipbalaut@gmail.com> wrote in > Maybe we can somehow achieve that without a broken archive command, > but I am not sure how it is enough to just delete WAL from pg_wal? I > mean my original case was that > 1. Got the new history file from the archive but did not get the WAL > file yet which contains the checkpoint after TL switch > 2. So the standby2 try to stream using new primary using old TL and > set the wrong TL in expectedTLEs > > But if you are not doing anything to stop archiving WAL files or to > guarantee that WAL has come to archive and you deleted those then I am > not sure how we are reproducing the original problem. Thanks for the reply! We're writing at the very beginning of the switching segment at the promotion time. So it is guaranteed that the first segment of the newer timline won't be archived until the rest almost 16MB in the segment is consumed or someone explicitly causes a segment switch (including archive timeout). > BTW, I have also tested your script and I found below log, which shows > that standby2 is successfully able to select the timeline2 so it is > not reproducing the issue. Am I missing something? standby_2? My last one 026_timeline_issue_2.pl doesn't use that name and uses "standby_1 and "cascade". In the ealier ones, standby_4 and 5 (or 3 and 4 in the later versions) are used in ths additional tests. So I think it shold be something different? -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Further refinement of stuck_on_old_timeline recovery test
- e46f6a078c1a 9.6.23 landed
- 1dc53c914fe8 10.18 landed
- c0a7587807dd 11.13 landed
- fb3d6b0e1aa4 12.8 landed
- d906d106f854 13.4 landed
- 54a5ed220169 14.0 landed
-
Adjust new test case to set wal_keep_segments.
- 6cd0e55f9ffb 9.6.23 landed
- 1c2c6a9a299c 10.18 landed
- 534b9be805b4 11.13 landed
- 2208d71a0099 12.8 landed
-
Adjust new test case to set wal_keep_size.
- 3465328aa19e 13.4 landed
- 4dcb1d087aeb 14.0 landed
-
Fix corner case failure of new standby to follow new primary.
- 6eb5b9ae3917 9.6.23 landed
- 31bda6a22ad1 10.18 landed
- ca158c168ea3 11.13 landed
- 5d950c721d38 12.8 landed
- 082656429215 13.4 landed
- caba8f0d43fb 14.0 landed
-
Back-port a few PostgresNode.pm methods.
- 75212a854f99 9.6.23 landed
-
Allow PostgresNode.pm's backup method to accept backup_options.
- 9778a191a4c0 10.18 landed
- 38982b8b7bd9 11.13 landed
- 6fc2febc28ae 12.8 landed
- 99a0a2ada8c5 13.4 landed
-
Add end-to-end testing of pg_basebackup's tar-format output.
- 081876d75ea1 14.0 cited
-
Allow PostgresNode.pm tests to wait for catchup
- fb093e4cb36f 10.0 cited
-
Delay reading timeline history file until it's fetched from master.
- ee994272ca50 9.3.0 cited