Skip to content

Commit

Permalink
Emit log when restore_command succeeds but archived file faills to be…
Browse files Browse the repository at this point in the history
… restored.

Previously, when restore_command claimed to succeed but failed to restore
the file with the right name, for example, due to mis-configuration of
restore_command, no log message was reported. Then the recovery failed
later with an error message not directly related to the issue.

This commit changes the recovery so that a log message is emitted in
this error case. This would enable us to investigate what happened in
this case more easily.

Author: Jeff Janes, Fujii Masao
Reviewed-by: Pavel Borisov, Kyotaro Horiguchi
Discussion: https://postgr.es/m/CAMkU=1xkFs3Omp4JR4wMYWdam_KLuj6LXnTYfU8u3T0h=PLLMQ@mail.gmail.com
  • Loading branch information
MasaoFujii committed Nov 20, 2020
1 parent 49407dc commit a4ef032
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/backend/access/transam/xlogarchive.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,11 +220,12 @@ RestoreArchivedFile(char *path, const char *xlogfname,
else
{
/* stat failed */
if (errno != ENOENT)
ereport(FATAL,
(errcode_for_file_access(),
errmsg("could not stat file \"%s\": %m",
xlogpath)));
int elevel = (errno == ENOENT) ? LOG : FATAL;

ereport(elevel,
(errcode_for_file_access(),
errmsg("could not stat file \"%s\": %m", xlogpath),
errdetail("restore_command returned a zero exit status, but stat() failed.")));
}
}

Expand Down

0 comments on commit a4ef032

Please sign in to comment.