1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-27 21:01:50 +03:00

A preparatory patch for MCOL-4170 Refactor services/systemd units to finish their bootstrap ...

Moving signal initialization code into separate functions.
This commit is contained in:
Alexander Barkov
2020-11-06 11:53:02 +04:00
parent d68716e423
commit ffd96d0315
6 changed files with 139 additions and 96 deletions

View File

@ -94,6 +94,26 @@ void added_a_pm(int)
} }
} }
static void setupSignalHandlers()
{
#ifndef _MSC_VER
/* set up some signal handlers */
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = added_a_pm;
sigaction(SIGHUP, &ign, 0);
ign.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &ign, 0);
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
#endif
}
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
// Set locale language // Set locale language
@ -126,20 +146,8 @@ int main(int argc, char* argv[])
ResourceManager* rm = ResourceManager::instance(); ResourceManager* rm = ResourceManager::instance();
Dec = DistributedEngineComm::instance(rm); Dec = DistributedEngineComm::instance(rm);
#ifndef _MSC_VER
/* set up some signal handlers */ setupSignalHandlers();
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = added_a_pm;
sigaction(SIGHUP, &ign, 0);
ign.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &ign, 0);
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
#endif
ddlprocessor::DDLProcessor ddlprocessor(1, 20); ddlprocessor::DDLProcessor ddlprocessor(1, 20);

View File

@ -509,6 +509,27 @@ int8_t setupCwd()
} }
} // Namewspace } // Namewspace
static void setupSignalHandlers()
{
#ifndef _MSC_VER
/* set up some signal handlers */
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = added_a_pm;
sigaction(SIGHUP, &ign, 0);
ign.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &ign, 0);
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
#endif
}
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
BRM::DBRM dbrm; BRM::DBRM dbrm;
@ -694,21 +715,7 @@ int main(int argc, char* argv[])
Dec = DistributedEngineComm::instance(rm); Dec = DistributedEngineComm::instance(rm);
#ifndef _MSC_VER setupSignalHandlers();
/* set up some signal handlers */
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = added_a_pm;
sigaction(SIGHUP, &ign, 0);
ign.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &ign, 0);
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
#endif
dmlserver.start(); dmlserver.start();

View File

@ -74,29 +74,9 @@ void coreSM(int sig)
signalCaught = true; signalCaught = true;
} }
int main(int argc, char** argv)
static void setupSignalHandlers()
{ {
SMLogging* logger = SMLogging::get();
IOCoordinator* ioc = NULL;
Cache* cache = NULL;
Synchronizer* sync = NULL;
Replicator* rep = NULL;
/* Instantiate objects to have them verify config settings before continuing */
try
{
ioc = IOCoordinator::get();
cache = Cache::get();
sync = Synchronizer::get();
rep = Replicator::get();
}
catch (exception &e)
{
logger->log(LOG_INFO, "StorageManager init FAIL: %s", e.what());
return -1;
}
struct sigaction sa; struct sigaction sa;
memset(&sa, 0, sizeof(sa)); memset(&sa, 0, sizeof(sa));
@ -123,6 +103,33 @@ int main(int argc, char** argv)
sa.sa_handler = printKPIs; sa.sa_handler = printKPIs;
sigaction(SIGUSR2, &sa, NULL); sigaction(SIGUSR2, &sa, NULL);
}
int main(int argc, char** argv)
{
SMLogging* logger = SMLogging::get();
IOCoordinator* ioc = NULL;
Cache* cache = NULL;
Synchronizer* sync = NULL;
Replicator* rep = NULL;
/* Instantiate objects to have them verify config settings before continuing */
try
{
ioc = IOCoordinator::get();
cache = Cache::get();
sync = Synchronizer::get();
rep = Replicator::get();
}
catch (exception &e)
{
logger->log(LOG_INFO, "StorageManager init FAIL: %s", e.what());
return -1;
}
setupSignalHandlers();
int ret = 0; int ret = 0;

View File

@ -100,6 +100,28 @@ void reload(int num)
} }
*/ */
static void setupSignalHandlers()
{
/* XXXPAT: we might want to install signal handlers for every signal */
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifndef _MSC_VER
signal(SIGHUP, SIG_IGN);
signal(SIGUSR1, restart);
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
// Set locale language // Set locale language
@ -130,22 +152,7 @@ int main(int argc, char** argv)
(void)config::Config::makeConfig(); (void)config::Config::makeConfig();
/* XXXPAT: we might want to install signal handlers for every signal */ setupSignalHandlers();
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifndef _MSC_VER
signal(SIGHUP, SIG_IGN);
signal(SIGUSR1, restart);
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
idbdatafile::IDBPolicy::configIDBPolicy(); idbdatafile::IDBPolicy::configIDBPolicy();

View File

@ -76,6 +76,27 @@ void reset(int sig)
comm->reset(); comm->reset();
} }
static void setupSignalHandlers()
{
#ifdef SIGHUP
signal(SIGHUP, reset);
#endif
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
// Set locale language // Set locale language
@ -118,21 +139,7 @@ int main(int argc, char** argv)
exit(1); exit(1);
} }
#ifdef SIGHUP setupSignalHandlers();
signal(SIGHUP, reset);
#endif
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
if (!(argc >= 3 && (arg = argv[2]) == "fg")) if (!(argc >= 3 && (arg = argv[2]) == "fg"))
err = fork(); err = fork();

View File

@ -102,6 +102,26 @@ int setupResources()
return 0; return 0;
} }
static void setupSignalHandlers()
{
#ifndef _MSC_VER
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = added_a_pm;
sigaction(SIGHUP, &sa, 0);
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, 0);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = fatalHandler;
sigaction(SIGSEGV, &sa, 0);
sigaction(SIGABRT, &sa, 0);
sigaction(SIGFPE, &sa, 0);
#endif
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
// Set locale language // Set locale language
@ -142,20 +162,7 @@ int main(int argc, char** argv)
} }
} }
#ifndef _MSC_VER setupSignalHandlers();
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = added_a_pm;
sigaction(SIGHUP, &sa, 0);
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, 0);
memset(&sa, 0, sizeof(sa));
sa.sa_handler = fatalHandler;
sigaction(SIGSEGV, &sa, 0);
sigaction(SIGABRT, &sa, 0);
sigaction(SIGFPE, &sa, 0);
#endif
// Init WriteEngine Wrapper (including Config Columnstore.xml cache) // Init WriteEngine Wrapper (including Config Columnstore.xml cache)
WriteEngine::WriteEngineWrapper::init( WriteEngine::SUBSYSTEM_ID_WE_SRV ); WriteEngine::WriteEngineWrapper::init( WriteEngine::SUBSYSTEM_ID_WE_SRV );