On Mon, Feb 12, 2018 at 04:33:51PM +0530, Pavan Deolasee wrote: > I'm not sure if Michael has spotted a real problem or was that just a > concern. He himself later rightly pointed out that when a WAL file is > switched, the old file is filled with zeros. So I don't see a problem > there. May be I am missing something and Michael can explain further.
Sorry for my late reply here. I have been eyeballing the code for some time to be sure that I was not missing something. A new segment is filled with zeros when it is freshly created (see XLogFileInit), or when doing a forced segment switch, but the checkpointer just renames the old files which could perfectly contain past data which is reused afterwards. So after doing one recycling cycle, the old data should be overwritten when a second recycling cycle happens. One thing that worries me though is related to timeline switches. The last, partial, WAL segment may still have garbage data. Since 9.5 the segment is being renamed with a dedicated suffix, but the file could be renamed if an operator is willing to finish replay up to the end of the timeline where this file is the last one, and it could have junk data that your checks rely on. There may be other things I have not considered, but at least that's one problem. -- Michael
signature.asc
Description: PGP signature