Re: BUG #15335: Documentation is wrong about archive_command andexisting files - Mailing list pgsql-bugs

From Jeff Janes
Subject Re: BUG #15335: Documentation is wrong about archive_command andexisting files
Date
Msg-id CAMkU=1x9pjj410OD3gTzcpk7+xsBxce6xMMR7MOdn8-K_30FbA@mail.gmail.com
Whole thread Raw
In response to BUG #15335: Documentation is wrong about archive_command and existingfiles  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #15335: Documentation is wrong about archive_command andexisting files  ("Phil Endecott" <spam_from_pgsql_lists@chezphil.org>)
List pgsql-bugs
On Thu, Aug 16, 2018 at 12:10 PM, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      15335
Logged by:          Phil Endecott
Email address:      spam_from_pgsql_lists@chezphil.org
PostgreSQL version: 9.6.10
Operating system:   Debian Stretch
Description:       

The docs in section 25.3.1 say that archive_command should check if the
target file already exists and fail in that case.  It seems that this is not
entirely true; the command should succeed if the target file already exists
and its content is the same as the source.
This is explicitly mentioned in section 26.2.9 for the case of cascaded
replication with a shared archive, but I understand that this is actually
needed in all cases.  I encountered this during a failed attempt at
promotion, but there are likely to be other cases.  Quoting David Steele
from the -general mailing list:

"Duplicate WAL is possible in *all* cases. A trivial example is that
Postgres calls archive_command and it succeeds but an error happens (e.g.
network) right before Postgres is notified. It will wait a bit and try the
same WAL segment again."

Sure, that is possible.  But it is also possible that the network error caused the file to be short, but an identical prefix of what it is supposed to be.  Or maybe it was corrupted by the error, and so not even an identical prefix.  The possibilities are endless, and an example cannot cover all of them while still usefully serving as an example.  There are canned systems for handling this more thoroughly, and you should look into using one of them.

Cheers,

Jeff

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: BUG #15331: Please check if recovery.conf can be renamed
Next
From: "Phil Endecott"
Date:
Subject: Re: BUG #15335: Documentation is wrong about archive_command andexisting files