mirror of https://github.com/citusdata/citus.git
Merge pull request #3601 from citusdata/maintenanced-dont-proc-exit-from-term-handler
maintenanced: Don't call proc_exit in SIGTERM handlerpull/3584/head
commit
d0d51bb8c3
|
@ -102,6 +102,7 @@ static MaintenanceDaemonControlData *MaintenanceDaemonControl = NULL;
|
||||||
static HTAB *MaintenanceDaemonDBHash;
|
static HTAB *MaintenanceDaemonDBHash;
|
||||||
|
|
||||||
static volatile sig_atomic_t got_SIGHUP = false;
|
static volatile sig_atomic_t got_SIGHUP = false;
|
||||||
|
static volatile sig_atomic_t got_SIGTERM = false;
|
||||||
|
|
||||||
static void MaintenanceDaemonSigTermHandler(SIGNAL_ARGS);
|
static void MaintenanceDaemonSigTermHandler(SIGNAL_ARGS);
|
||||||
static void MaintenanceDaemonSigHupHandler(SIGNAL_ARGS);
|
static void MaintenanceDaemonSigHupHandler(SIGNAL_ARGS);
|
||||||
|
@ -145,8 +146,7 @@ InitializeMaintenanceDaemonBackend(void)
|
||||||
|
|
||||||
MaintenanceDaemonDBData *dbData = (MaintenanceDaemonDBData *) hash_search(
|
MaintenanceDaemonDBData *dbData = (MaintenanceDaemonDBData *) hash_search(
|
||||||
MaintenanceDaemonDBHash,
|
MaintenanceDaemonDBHash,
|
||||||
&
|
&MyDatabaseId,
|
||||||
MyDatabaseId,
|
|
||||||
HASH_ENTER_NULL,
|
HASH_ENTER_NULL,
|
||||||
&found);
|
&found);
|
||||||
|
|
||||||
|
@ -253,7 +253,7 @@ CitusMaintenanceDaemonMain(Datum main_arg)
|
||||||
/*
|
/*
|
||||||
* Look up this worker's configuration.
|
* Look up this worker's configuration.
|
||||||
*/
|
*/
|
||||||
LWLockAcquire(&MaintenanceDaemonControl->lock, LW_SHARED);
|
LWLockAcquire(&MaintenanceDaemonControl->lock, LW_EXCLUSIVE);
|
||||||
|
|
||||||
MaintenanceDaemonDBData *myDbData = (MaintenanceDaemonDBData *)
|
MaintenanceDaemonDBData *myDbData = (MaintenanceDaemonDBData *)
|
||||||
hash_search(MaintenanceDaemonDBHash, &databaseOid,
|
hash_search(MaintenanceDaemonDBHash, &databaseOid,
|
||||||
|
@ -305,7 +305,7 @@ CitusMaintenanceDaemonMain(Datum main_arg)
|
||||||
pgstat_report_appname("Citus Maintenance Daemon");
|
pgstat_report_appname("Citus Maintenance Daemon");
|
||||||
|
|
||||||
/* enter main loop */
|
/* enter main loop */
|
||||||
for (;;)
|
while (!got_SIGTERM)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
int latchFlags = WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH;
|
int latchFlags = WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH;
|
||||||
|
@ -651,7 +651,15 @@ MaintenanceDaemonShmemInit(void)
|
||||||
static void
|
static void
|
||||||
MaintenanceDaemonSigTermHandler(SIGNAL_ARGS)
|
MaintenanceDaemonSigTermHandler(SIGNAL_ARGS)
|
||||||
{
|
{
|
||||||
proc_exit(0);
|
int save_errno = errno;
|
||||||
|
|
||||||
|
got_SIGTERM = true;
|
||||||
|
if (MyProc != NULL)
|
||||||
|
{
|
||||||
|
SetLatch(&MyProc->procLatch);
|
||||||
|
}
|
||||||
|
|
||||||
|
errno = save_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue