From 1809598f03f43024d2296a64bf2b0a8571ac5ba0 Mon Sep 17 00:00:00 2001 From: benthompson15 Date: Fri, 20 Sep 2019 16:07:09 -0500 Subject: [PATCH 1/2] MCOL-3436: Modify signal handling to not shutdown on non term or core signals. --- storage-manager/src/main.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/storage-manager/src/main.cpp b/storage-manager/src/main.cpp index 7d7d6d387..ee1712675 100644 --- a/storage-manager/src/main.cpp +++ b/storage-manager/src/main.cpp @@ -74,12 +74,15 @@ int main(int argc, char** argv) struct sigaction sa; memset(&sa, 0, sizeof(sa)); - for (int i=1; i shutdownSignals{ SIGHUP, SIGINT, SIGQUIT, SIGILL, + SIGTRAP, SIGABRT, SIGBUS, SIGFPE, + SIGSEGV, SIGALRM, SIGTERM, SIGXCPU, + SIGXFSZ, SIGVTALRM, SIGPROF, SIGPOLL, + SIGPWR, SIGSYS}; + sa.sa_handler = shutdownSM; + for (int sig : shutdownSignals) + sigaction(sig, &sa, NULL); + sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, NULL); From 70f4ffe8c26821942ca14c8e81efd79f8431acc0 Mon Sep 17 00:00:00 2001 From: benthompson15 Date: Tue, 24 Sep 2019 11:16:02 -0500 Subject: [PATCH 2/2] MCOL-3436: have sighandler function call crashtrace handler. --- storage-manager/CMakeLists.txt | 3 ++- storage-manager/src/main.cpp | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index dbd7bb9fd..ab41c4833 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.12) project(storagemanager) -include_directories(include ${CMAKE_BINARY_DIR}/include) +include_directories(include ${CMAKE_BINARY_DIR}/include ${ENGINE_UTILS_COMMON_INCLUDE}) set(storagemanager_SRCS src/AppendTask.cpp @@ -34,6 +34,7 @@ set(storagemanager_SRCS src/Utilities.cpp src/Ownership.cpp src/PrefixCache.cpp + ../utils/common/crashtrace.cpp ) option(SM_TRACE "Enable some tracing output" OFF) diff --git a/storage-manager/src/main.cpp b/storage-manager/src/main.cpp index ee1712675..e8d68390c 100644 --- a/storage-manager/src/main.cpp +++ b/storage-manager/src/main.cpp @@ -34,6 +34,7 @@ using namespace std; #include "Cache.h" #include "Synchronizer.h" #include "Replicator.h" +#include "crashtrace.h" using namespace storagemanager; @@ -58,7 +59,10 @@ void printKPIs(int sig) void shutdownSM(int sig) { if (!signalCaught) + { (SessionManager::get())->shutdownSM(sig); + fatalHandler(sig); + } signalCaught = true; }