Hmm. I think that I caught the tail of the problem.. Script with small change reproduced the situation for me.
The latest standby uses 3 as its TLI after the history file 0..3.history which could get from the archive. So the WAL files recycled on this standby will have the TLI=3. Nevertheless the LSN of the segment recycled on standby is on the TLI=2 in the master, the standby makes the first request for each segment with that LSN but TLI = 3 to the master because the standby runs on recoveryTargetTLI=3. The master reasonably doesn't have it and finally the standby finds that wrong WAL file in its pg_xlog directory before the second request with TLI=2 would be made. In conclusion, the standby should name the recycled WAL segment using the same TLI for the LSN on the master. Or should never recycle WAL files.. regards, -- Kyotaro Horiguchi -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers