I think this is a good improvement and also like the option (on pg_rewind) to 
potentially send checkpoints to the source.




Personal anecdote. I was using stolon and frequently failing over. For sometime 
the rewind was failing that it wasn't required. Only learnt that it's the 
checkpoint on the source which was missing. 

References https://github.com/sorintlab/stolon/issues/601
And the fix https://github.com/sorintlab/stolon/pull/644
 https://github.com/sorintlab/stolon/issues/601





---- On Sat, 04 Jun 2022 05:59:12 -0700 James Coleman <mailto:jtc...@gmail.com> 
wrote ----



A few weeks back I sent a bug report [1] directly to the -bugs mailing 
list, and I haven't seen any activity on it (maybe this is because I 
emailed directly instead of using the form?), but I got some time to 
take a look and concluded that a first-level fix is pretty simple. 
 
A quick background refresher: after promoting a standby rewinding the 
former primary requires that a checkpoint have been completed on the 
new primary after promotion. This is correctly documented. However 
pg_rewind incorrectly reports to the user that a rewind isn't 
necessary because the source and target are on the same timeline. 
 
Specifically, this happens when the control file on the newly promoted 
server looks like: 
 
 Latest checkpoint's TimeLineID:       4 
 Latest checkpoint's PrevTimeLineID:   4 
 ... 
 Min recovery ending loc's timeline:   5 
 
Attached is a patch that detects this condition and reports it as an 
error to the user. 
 
In the spirit of the new-ish "ensure shutdown" functionality I could 
imagine extending this to automatically issue a checkpoint when this 
situation is detected. I haven't started to code that up, however, 
wanting to first get buy-in on that. 
 
Thanks, 
James Coleman 
 
1: 
https://www.postgresql.org/message-id/CAAaqYe8b2DBbooTprY4v=bized9qbqvlq+fd9j617eqfjk1...@mail.gmail.com

Reply via email to