From 4d920a9219e65a7f29ecbf07078bf28317daa067 Mon Sep 17 00:00:00 2001 From: Ravin Perera <33562092+ravinsp@users.noreply.github.com> Date: Sat, 26 Sep 2020 21:39:26 +0530 Subject: [PATCH] Fixed child process signal behaviours. (#128) * Restored signal handlers upon fork(). * Improved error handling of hpfs process kill scenario. * Set pgid for forked processes for graceful sending of SIGINT. --- src/comm/comm_client.cpp | 2 +- src/comm/comm_server.cpp | 2 +- src/cons/cons.cpp | 2 +- src/hpfs/hpfs.cpp | 4 ++-- src/main.cpp | 11 ++++++----- src/sc.cpp | 18 +++++++++--------- src/util.cpp | 18 +++++++++++++++--- src/util.hpp | 2 +- test/bin/hpfs | Bin 166048 -> 166048 bytes 9 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/comm/comm_client.cpp b/src/comm/comm_client.cpp index 3dde5341..827486fd 100644 --- a/src/comm/comm_client.cpp +++ b/src/comm/comm_client.cpp @@ -62,7 +62,7 @@ namespace comm else if (pid == 0) { // Websocat process. - util::unmask_signal(); + util::fork_detach(); close(write_pipe[1]); //parent write close(read_pipe[0]); //parent read diff --git a/src/comm/comm_server.cpp b/src/comm/comm_server.cpp index 5726dfaa..c3d2b185 100644 --- a/src/comm/comm_server.cpp +++ b/src/comm/comm_server.cpp @@ -295,7 +295,7 @@ namespace comm else if (pid == 0) { // Websocketd process. - util::unmask_signal(); + util::fork_detach(); // We are using websocketd forked repo: https://github.com/codetsunami/websocketd diff --git a/src/cons/cons.cpp b/src/cons/cons.cpp index 5da62c5e..5d16009c 100644 --- a/src/cons/cons.cpp +++ b/src/cons/cons.cpp @@ -519,7 +519,7 @@ namespace cons if (pid == 0) { // appbill process. - util::unmask_signal(); + util::fork_detach(); // before execution chdir into a valid the latest state data directory that contains an appbill.table chdir(conf::ctx.state_rw_dir.c_str()); diff --git a/src/hpfs/hpfs.cpp b/src/hpfs/hpfs.cpp index 3e3b61af..0fbccab3 100644 --- a/src/hpfs/hpfs.cpp +++ b/src/hpfs/hpfs.cpp @@ -56,7 +56,7 @@ namespace hpfs else if (pid == 0) { // hpfs process. - util::unmask_signal(); + util::fork_detach(); // Fill process args. char *execv_args[] = { @@ -145,7 +145,7 @@ namespace hpfs else if (pid == 0) { // hpfs process. - util::unmask_signal(); + util::fork_detach(); // If the mount dir is not specified, assign a mount dir based on hpfs process id. const pid_t self_pid = getpid(); diff --git a/src/main.cpp b/src/main.cpp index 856faaf2..0af79615 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -67,12 +67,12 @@ int parse_cmd(int argc, char **argv) */ void deinit() { + usr::deinit(); + p2p::deinit(); cons::deinit(); state_sync::deinit(); state_serve::deinit(); read_req::deinit(); - usr::deinit(); - p2p::deinit(); hpfs::deinit(); } @@ -190,8 +190,9 @@ int main(int argc, char **argv) << (conf::cfg.startup_mode == conf::OPERATING_MODE::OBSERVER ? "Observer" : "Proposer"); LOG_INFO << "Public key: " << conf::cfg.pubkeyhex.substr(2); // Public key without 'ed' prefix. - if (hpfs::init() != 0 || p2p::init() != 0 || usr::init() != 0 || read_req::init() != 0 || - state_serve::init() != 0 || state_sync::init() != 0 || cons::init() != 0) + if (hpfs::init() != 0 || read_req::init() != 0 || + state_serve::init() != 0 || state_sync::init() != 0 || cons::init() != 0 || + p2p::init() != 0 || usr::init() != 0) { deinit(); return -1; @@ -203,7 +204,7 @@ int main(int argc, char **argv) // Wait until consensus thread finishes. cons::wait(); - // deinit() here only gets called when there is an error in consensus. + // deinit() here only gets called when there is an error in consensus. // If not deinit in the sigint handler is called when a SIGINT is received. deinit(); } diff --git a/src/sc.cpp b/src/sc.cpp index 0c26c5f3..06728b80 100644 --- a/src/sc.cpp +++ b/src/sc.cpp @@ -67,7 +67,7 @@ namespace sc else if (pid == 0) { // Contract process. - util::unmask_signal(); + util::fork_detach(); // Set up the process environment and overlay the contract binary program with execv(). @@ -112,7 +112,9 @@ namespace sc ret = -1; success: - stop_hpfs_rw_session(ctx); + if (stop_hpfs_rw_session(ctx) == -1) + ret = -1; + cleanup_fdmap(ctx.userfds); if (!ctx.args.readonly) { @@ -131,7 +133,7 @@ namespace sc { if (pid > 0) { - int scstatus; + int scstatus = 0; waitpid(pid, &scstatus, 0); if (!WIFEXITED(scstatus)) return WEXITSTATUS(scstatus); @@ -156,17 +158,18 @@ namespace sc */ int stop_hpfs_rw_session(execution_context &ctx) { + int result = 0; // Read the root hash if not in readonly mode. if (!ctx.args.readonly && hpfs::get_hash(ctx.args.post_execution_state_hash, ctx.args.state_dir, "/") < 1) - return -1; + result = -1; LOG_DEBUG << "Stopping hpfs session... pid:" << ctx.hpfs_pid << (ctx.args.readonly ? " (rdonly)" : ""); if (util::kill_process(ctx.hpfs_pid, true) == -1) - return -1; + result = -1; ctx.hpfs_pid = 0; - return 0; + return result; } /** @@ -711,9 +714,6 @@ namespace sc if (ctx.contract_pid > 0) util::kill_process(ctx.contract_pid, true); - if (ctx.hpfs_pid > 0) - util::kill_process(ctx.hpfs_pid, true); - if (ctx.output_fetcher_thread.joinable()) ctx.output_fetcher_thread.join(); } diff --git a/src/util.cpp b/src/util.cpp index 591b4185..4de6b0fa 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -206,13 +206,25 @@ namespace util pthread_sigmask(SIG_BLOCK, &mask, NULL); } - // Clears signal mask from the calling thread. - // Used for other processes forked from hpcore threads. - void unmask_signal() + /** + * Clears signal mask and signal handlers from the caller. + * Called by other processes forked from hpcore threads so they get detatched from + * the hpcore signal setup. + */ + void fork_detach() { + // Restore signal handlers to defaults. + signal(SIGINT, SIG_DFL); + signal(SIGSEGV, SIG_DFL); + signal(SIGABRT, SIG_DFL); + + // Remove any signal masks applied by hpcore. sigset_t mask; sigemptyset(&mask); pthread_sigmask(SIG_SETMASK, &mask, NULL); + + // Set process group id (so the terminal doesn't send kill signals to forked children). + setpgrp(); } // Kill a process with a signal and if specified, wait until it stops running. diff --git a/src/util.hpp b/src/util.hpp index 00ee11bb..f2ba1339 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -90,7 +90,7 @@ namespace util void mask_signal(); - void unmask_signal(); + void fork_detach(); int kill_process(const pid_t pid, const bool wait, const int signal = SIGINT); diff --git a/test/bin/hpfs b/test/bin/hpfs index 763575b7b0f7316105d08add929c5a8689e849dd..415e9f444fe313a85b607cd9ca4b6c1585b10523 100755 GIT binary patch delta 42401 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 a7u`52u_RW?&HoFR!%_PH