WAL archive is lost

Ryo Matsumura (Fujitsu) <matsumura.ryo@fujitsu.com>

From: "matsumura.ryo@fujitsu.com" <matsumura.ryo@fujitsu.com>
To: Pgsql Hackers <pgsql-hackers@postgresql.org>
Date: 2019-11-22T05:31:55Z
Lists: pgsql-hackers
Hi all

I find a situation that WAL archive file is lost but any WAL segment file is not lost.
It causes for archive recovery to fail. Is this behavior a bug?

example:

  WAL segment files
  000000010000000000000001
  000000010000000000000002
  000000010000000000000003

  Archive files
  000000010000000000000001
  000000010000000000000003

  Archive file 000000010000000000000002 is lost but WAL segment files
  is continuous. Recovery with archive (i.e. PITR) stops at the end of
  000000010000000000000001.

How to reproduce:
- Set up replication (primary and standby).
- Set [archive_mode = always] in standby.
- WAL receiver exits (i.e. because primary goes down)
  after receiver inserts the last record in some WAL segment file
  before receiver notifies the segement file to archiver(create .ready file).

Even if WAL receiver restarts, the WAL segment file is not notified to 
archiver.


Regards
Ryo Matsumura