aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2013-11-13 06:38:18 -0500
committerPeter Eisentraut <peter_e@gmx.net>2013-12-02 22:31:05 -0500
commitfef88b3fdaa3537c64e3d7df9261bc75ece80d3f (patch)
tree30e1b1c49bb3c1435b6818e960aafa30dc0f9cc9 /src
parent7ab321404c4f721a22e86f36f68fe5e94f65e54d (diff)
downloadpostgresql-fef88b3fdaa3537c64e3d7df9261bc75ece80d3f.tar.gz
postgresql-fef88b3fdaa3537c64e3d7df9261bc75ece80d3f.zip
Report exit code from external recovery commands properly
When an external recovery command such as restore_command or archive_cleanup_command fails, report the exit code properly, distinguishing signals and normal exists, using the existing wait_result_to_str() facility, instead of just reporting the return value from system(). Reviewed-by: Peter Geoghegan <pg@heroku.com>
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xlogarchive.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c
index 342975c7b64..be95684a5af 100644
--- a/src/backend/access/transam/xlogarchive.c
+++ b/src/backend/access/transam/xlogarchive.c
@@ -300,8 +300,8 @@ RestoreArchivedFile(char *path, const char *xlogfname,
signaled = WIFSIGNALED(rc) || WEXITSTATUS(rc) > 125;
ereport(signaled ? FATAL : DEBUG2,
- (errmsg("could not restore file \"%s\" from archive: return code %d",
- xlogfname, rc)));
+ (errmsg("could not restore file \"%s\" from archive: %s",
+ xlogfname, wait_result_to_str(rc))));
not_available:
@@ -410,9 +410,10 @@ ExecuteRecoveryCommand(char *command, char *commandName, bool failOnSignal)
ereport((signaled && failOnSignal) ? FATAL : WARNING,
/*------
translator: First %s represents a recovery.conf parameter name like
- "recovery_end_command", and the 2nd is the value of that parameter. */
- (errmsg("%s \"%s\": return code %d", commandName,
- command, rc)));
+ "recovery_end_command", the 2nd is the value of that parameter, the
+ third an already translated error message. */
+ (errmsg("%s \"%s\": %s", commandName,
+ command, wait_result_to_str(rc))));
}
}