summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan Bossart2024-02-14 23:09:31 +0000
committerNathan Bossart2024-02-14 23:09:31 +0000
commit8fd0498de2005b4136aaf6fcd056ca4b18e37724 (patch)
treec747b9182bdb9657fa0d9e47a6c9011020e5c9d3 /src
parent28e46325091dfac5c6ab9ea1e047a8d09dbd16e7 (diff)
Remove obsolete check in SIGTERM handler for the startup process.
Thanks to commit 3b00fdba9f, this check in the SIGTERM handler for the startup process is now obsolete and can be removed. Instead of leaving around the dead function write_stderr_signal_safe(), I've opted to just remove it for now. This partially reverts commit 97550c0711. Reviewed-by: Andres Freund, Noah Misch Discussion: https://postgr.es/m/20231121212008.GA3742740%40nathanxps13
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/startup.c17
-rw-r--r--src/backend/utils/error/elog.c28
-rw-r--r--src/include/utils/elog.h6
3 files changed, 1 insertions, 50 deletions
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 <unistd.h>
-
#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 */