diff --git a/src/backend/postmaster/startup.c b/src/backend/postmaster/startup.c index b6b53cd25f5..44b6c5bb758 100644 --- a/src/backend/postmaster/startup.c +++ b/src/backend/postmaster/startup.c @@ -19,8 +19,6 @@ */ #include "postgres.h" -#include - #include "access/xlog.h" #include "access/xlogrecovery.h" #include "access/xlogutils.h" @@ -112,20 +110,7 @@ static void StartupProcShutdownHandler(SIGNAL_ARGS) { if (in_restore_command) - { - /* - * If we are in a child process (e.g., forked by system() in - * RestoreArchivedFile()), we don't want to call any exit callbacks. - * The parent will take care of that. - */ - if (MyProcPid == (int) getpid()) - proc_exit(1); - else - { - write_stderr_signal_safe("StartupProcShutdownHandler() called in child process\n"); - _exit(1); - } - } + proc_exit(1); else shutdown_requested = true; WakeupRecovery(); diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 700fbde6db4..bba00a0087f 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -3737,31 +3737,3 @@ write_stderr(const char *fmt,...) #endif va_end(ap); } - - -/* - * Write a message to STDERR using only async-signal-safe functions. This can - * be used to safely emit a message from a signal handler. - * - * TODO: It is likely possible to safely do a limited amount of string - * interpolation (e.g., %s and %d), but that is not presently supported. - */ -void -write_stderr_signal_safe(const char *str) -{ - int nwritten = 0; - int ntotal = strlen(str); - - while (nwritten < ntotal) - { - int rc; - - rc = write(STDERR_FILENO, str + nwritten, ntotal - nwritten); - - /* Just give up on error. There isn't much else we can do. */ - if (rc == -1) - return; - - nwritten += rc; - } -} diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h index 761ee2512d9..054dd2bf62f 100644 --- a/src/include/utils/elog.h +++ b/src/include/utils/elog.h @@ -536,10 +536,4 @@ extern void write_jsonlog(ErrorData *edata); */ extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2); -/* - * Write a message to STDERR using only async-signal-safe functions. This can - * be used to safely emit a message from a signal handler. - */ -extern void write_stderr_signal_safe(const char *fmt); - #endif /* ELOG_H */