diff --git a/contrib/pg_standby/pg_standby.c b/contrib/pg_standby/pg_standby.c index 4261490dabc..1d6f972447f 100644 --- a/contrib/pg_standby/pg_standby.c +++ b/contrib/pg_standby/pg_standby.c @@ -371,13 +371,16 @@ CheckForExternalTrigger(void) * recovery completes, we will be asked again for the same file from * the archive using pg_standby so must remove trigger file so we can * reload file again and come up correctly. + * + * If it fails, return with an exit code that the server will treat + * as a FATAL error. */ rc = unlink(triggerPath); if (rc != 0) { fprintf(stderr, "\n ERROR: could not remove \"%s\": %s", triggerPath, strerror(errno)); fflush(stderr); - exit(rc); + exit(200); } return true; } diff --git a/doc/src/sgml/pgstandby.sgml b/doc/src/sgml/pgstandby.sgml index 87629278141..b52bf27d403 100644 --- a/doc/src/sgml/pgstandby.sgml +++ b/doc/src/sgml/pgstandby.sgml @@ -1,4 +1,4 @@ - + pg_standby @@ -199,6 +199,15 @@ pg_standby option ... archiv + + + It is critical the trigger file be created with permissions allowing + the postgres process to remove the file. Generally this is best done + by creating the file from the postgres user account. Failure to do so + will prevent completion of WAL file recovery and the server from + coming back online successfully. + + --help is not supported since