diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2013-11-13 06:38:18 -0500 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2013-12-02 22:31:05 -0500 |
commit | fef88b3fdaa3537c64e3d7df9261bc75ece80d3f (patch) | |
tree | 30e1b1c49bb3c1435b6818e960aafa30dc0f9cc9 | |
parent | 7ab321404c4f721a22e86f36f68fe5e94f65e54d (diff) | |
download | postgresql-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>
-rw-r--r-- | src/backend/access/transam/xlogarchive.c | 11 |
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)))); } } |