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, hlinnaka@iki.fi, pgsql-hackers@lists.postgresql.org
Date: 2021-05-17T04:05:47Z
Lists: pgsql-hackers
At Mon, 17 May 2021 13:01:04 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> At Mon, 17 May 2021 12:20:12 +0900 (JST), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in 
> > Assuming that we keep expectedTLEs synced with recoveryTargetTLI,
> > rescanLatestTimeLine updates the list properly so no need to worry
> > about the future.  So the issue would be in the past timelines.  After
> > reading the checkpoint record, if we need to rewind to the previous
> > timeline for the REDO point, the dummy list is inconvenient.
> 
> By the way, I tried reproducing this situation, but ended in finding
> it a kind of impossible because pg_basebackup (or pg_stop_backup())
> waits for the promotion checkpoint to end.

Mmm. That's wrong.  What the tool waits is not a promotion checkpoint,
but a backup-checkpoint, maybe.  (I don't remember cleary about that,
sorry.)

> If we make a backup in a somewhat broken steps, that could be done but
> I didn't try.

So there might still be a way to reproduce that.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Commits

  1. Further refinement of stuck_on_old_timeline recovery test

  2. Adjust new test case to set wal_keep_segments.

  3. Adjust new test case to set wal_keep_size.

  4. Fix corner case failure of new standby to follow new primary.

  5. Back-port a few PostgresNode.pm methods.

  6. Allow PostgresNode.pm's backup method to accept backup_options.

  7. Add end-to-end testing of pg_basebackup's tar-format output.

  8. Allow PostgresNode.pm tests to wait for catchup

  9. Delay reading timeline history file until it's fetched from master.