RE: [bug fix] pg_rewind creates corrupt WAL files, and the standby cannot catch up the primary

From: "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com>
To: 'Michael Paquier' <michael(at)paquier(dot)xyz>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: RE: [bug fix] pg_rewind creates corrupt WAL files, and the standby cannot catch up the primary
Date: 2018-03-09 08:22:49
Message-ID: 0A3221C70F24FB45833433255569204D1F9000B9@G01JPEXMBYT05
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

From: Michael Paquier [mailto:michael(at)paquier(dot)xyz]
> I see. So the only reason why this flag exists is that if a file is large
> enough so as it is split into multiple chunks, then the first unlink will
> work but not the successive ones. One chunk can be at most
> 1 million bytes, which is why it is essential for WAL segments. Instead
> of ignoring *all* errors, let's ignore only ENOENT and rename ignore_error
> to missing_ok as well.
> You need to update the comment in receiveFileChunks where an entry gets
> deleted with basically what I mentioned above, say:
> "If a file has been deleted on the source, remove it on the target as well.
> Note that multiple unlink() calls may happen on the same file if multiple
> data chunks are associated with it, hence ignore unconditionally anything
> missing. If this file is not a relation data file, then it has been already
> truncated when creating the file chunk list at hte previous execution of
> the filemap."
> Adding also a comment on top of remove_target_file to explain what
> missing_ok does would be nice to keep track of what the code should do.

Thanks for reviewing. All done.

Takayuki Tsunakawa

Attachment Content-Type Size
pg_rewind_corrupt_wal_v2.patch application/octet-stream 3.0 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message John Naylor 2018-03-09 08:32:59 Re: WIP: a way forward on bootstrap data
Previous Message Dilip Kumar 2018-03-09 08:12:04 Problem while setting the fpw with SIGHUP