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
This commit is contained in:
Nathan Bossart 2024-02-14 17:09:31 -06:00
parent 28e4632509
commit 8fd0498de2
3 changed files with 1 additions and 50 deletions

View File

@ -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();

View File

@ -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;
}
}

View File

@ -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 */