mirror of
https://github.com/postgres/postgres.git
synced 2025-09-06 13:46:51 +03:00
Remove obsolete check in SIGTERM handler for the startup process.
Thanks to commit3b00fdba9f
, 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 commit97550c0711
. Reviewed-by: Andres Freund, Noah Misch Discussion: https://postgr.es/m/20231121212008.GA3742740%40nathanxps13
This commit is contained in:
@@ -19,8 +19,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "access/xlog.h"
|
#include "access/xlog.h"
|
||||||
#include "access/xlogrecovery.h"
|
#include "access/xlogrecovery.h"
|
||||||
#include "access/xlogutils.h"
|
#include "access/xlogutils.h"
|
||||||
@@ -112,20 +110,7 @@ static void
|
|||||||
StartupProcShutdownHandler(SIGNAL_ARGS)
|
StartupProcShutdownHandler(SIGNAL_ARGS)
|
||||||
{
|
{
|
||||||
if (in_restore_command)
|
if (in_restore_command)
|
||||||
{
|
proc_exit(1);
|
||||||
/*
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
shutdown_requested = true;
|
shutdown_requested = true;
|
||||||
WakeupRecovery();
|
WakeupRecovery();
|
||||||
|
@@ -3737,31 +3737,3 @@ write_stderr(const char *fmt,...)
|
|||||||
#endif
|
#endif
|
||||||
va_end(ap);
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -536,10 +536,4 @@ extern void write_jsonlog(ErrorData *edata);
|
|||||||
*/
|
*/
|
||||||
extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2);
|
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 */
|
#endif /* ELOG_H */
|
||||||
|
Reference in New Issue
Block a user