From 4ec3cdc8b95633fbb7df6def9a00cf4804048e26 Mon Sep 17 00:00:00 2001 From: Patrick LeBlanc Date: Mon, 15 Jul 2019 15:15:38 -0500 Subject: [PATCH] Fixed a bug where procmon would have a PID of 0 for StorageManager, and would end up sending SIGTERM to everything. --- procmon/processmonitor.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/procmon/processmonitor.cpp b/procmon/processmonitor.cpp index 9a988fc68..1faa055c4 100644 --- a/procmon/processmonitor.cpp +++ b/procmon/processmonitor.cpp @@ -2227,13 +2227,16 @@ int ProcessMonitor::stopProcess(pid_t processID, std::string processName, std::s // exit gracefully. This will wait until StorageManager goes down to prevent // weirdness that I suspect will happen if we combine a slow connection with a restart // command. - if (processName == "StorageManager") + if (processName == "StorageManager" && processID != 0) { while (status == API_SUCCESS) { sleep(1); - log.writeLog(__LINE__, "Waiting for StorageManager to go away...", LOG_TYPE_DEBUG); + ostringstream os; + os << "Waiting for StorageManager to exit gracefully... pid is " << processID; + log.writeLog(__LINE__, os.str(), LOG_TYPE_DEBUG); status = kill(processID, SIGTERM); + break; } return API_SUCCESS;