archive_command / pg_stat_archiver & documentation

From: talk to ben <blo(dot)talkto(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: archive_command / pg_stat_archiver & documentation
Date: 2021-02-24 12:20:43
Message-ID: CAPE8EZ7akCzc1hWohA4AcbmKtHh9rcWAB5MStOeZD2+9jC+hLQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

The documentation describes how a return code > 125 on the restore_command
would prevent the server from starting [1] :

"
It is important that the command return nonzero exit status on failure. The
command *will* be called requesting files that are not present in the
archive; it must return nonzero when so asked. This is not an error
condition. An exception is that if the command was terminated by a signal
(other than SIGTERM, which is used as part of a database server shutdown)
or an error by the shell (such as command not found), then recovery will
abort and the server will not start up.
"

But, I dont see such a note on the archive_command side of thing. [2]

It could happend in case the archive command is not checked beforehand or
if the archive command becomes unavailable while PostgreSQL is running.
rsync can also return 255 in some cases (bad ssh configuration or typos).
In this case a fatal error is emitted, the archiver stops and is restarted
by the postmaster.

The view pg_stat_archiver is also not updated in this case. Is it on
purpose ? It could be problematic if someone uses it to check the archiver
process health.

Should we document this ? (I can make a patch)

regards,
Benoit

[1]
https://www.postgresql.org/docs/13/continuous-archiving.html#BACKUP-PITR-RECOVERY
[2]
https://www.postgresql.org/docs/13/continuous-archiving.html#BACKUP-ARCHIVING-WAL

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Julien Rouhaud 2021-02-24 12:21:41 Re: REINDEX backend filtering
Previous Message Amit Kapila 2021-02-24 11:37:47 Re: Parallel INSERT (INTO ... SELECT ...)