From ef74c6c92c3f7cfaf0ce3d6b750cc954d2488158 Mon Sep 17 00:00:00 2001 From: Chalith Desaman Date: Mon, 21 Jun 2021 11:09:02 +0530 Subject: [PATCH] Added support to external hpfs per instance (#16) --- CMakeLists.txt | 2 + README.md | 2 + dependencies/bin/hpfs | Bin 0 -> 414936 bytes src/conf.cpp | 6 +- src/conf.hpp | 1 + src/hp_manager.cpp | 95 ++++++++++++++++++++++++++++-- src/hp_manager.hpp | 2 + src/hpfs_manager.cpp | 130 ++++++++++++++++++++++++++++++++++++++++++ src/hpfs_manager.hpp | 11 ++++ src/pchheader.hpp | 1 + src/sqlite.cpp | 4 +- src/util/util.cpp | 19 ++++++ src/util/util.hpp | 4 +- 13 files changed, 267 insertions(+), 10 deletions(-) create mode 100755 dependencies/bin/hpfs create mode 100644 src/hpfs_manager.cpp create mode 100644 src/hpfs_manager.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 35062a0..599e1da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ add_executable(sagent src/crypto.cpp src/sqlite.cpp src/hp_manager.cpp + src/hpfs_manager.cpp src/msg/msg_parser.cpp src/msg/json/msg_json.cpp src/main.cpp @@ -36,6 +37,7 @@ target_link_libraries(sagent add_custom_command(TARGET sagent POST_BUILD COMMAND cp ./dependencies/bin/hpws ./build/ + COMMAND cp ./dependencies/bin/hpfs ./build/ COMMAND cp -r ./dependencies/default_contract ./build/ COMMAND cp ./bootstrap-contract/script.sh ./build/default_contract/contract_fs/seed/state/script.sh ) diff --git a/README.md b/README.md index 761824b..dd3a3d6 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,8 @@ Code is divided into subsystems via namespaces. **hp::** Contains hotpocket instance management related helper functions. +**hpfs::** Contains hpfs instance management related helper functions. + **msg::** Extract message data from received raw messages. **salog::** Handles logging. Creates and prints the logs according to the configured log section in the json config. diff --git a/dependencies/bin/hpfs b/dependencies/bin/hpfs new file mode 100755 index 0000000000000000000000000000000000000000..512fb88b917c4b6b7fed4a56ea21abed5d817b93 GIT binary patch literal 414936 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 + } + catch (const std::exception &e) + { + LOG_ERROR << "Invalid contract config hpfs log. " << e.what(); + return -1; + } + + const std::unordered_set valid_loglevels({"dbg", "inf", "wrn", "err"}); + if (valid_loglevels.count(log_level) != 1) + { + LOG_ERROR << "Invalid hpfs loglevel configured. Valid values: dbg|inf|wrn|err"; + return -1; + } + + try + { + if (d["node"]["history"] == "full") + is_full_history = true; + else if (d["node"]["history"] == "custom") + is_full_history = false; + else + { + LOG_ERROR << "Invalid history mode. 'full' or 'custom' expected."; + return -1; + } + } + catch (const std::exception &e) + { + LOG_ERROR << "Invalid contract config history mode. " << e.what(); + return -1; + } + + return 0; + } + } // namespace hp diff --git a/src/hp_manager.hpp b/src/hp_manager.hpp index f67d632..b5ed195 100644 --- a/src/hp_manager.hpp +++ b/src/hp_manager.hpp @@ -2,6 +2,7 @@ #define _SA_HP_MANAGER_ #include "pchheader.hpp" +#include "hpfs_manager.hpp" namespace hp { @@ -58,5 +59,6 @@ namespace hp int create_contract(instance_info &info, const std::string &folder_name, std::string_view owner_pubkey, const ports &assigned_ports); int write_json_file(const int fd, const jsoncons::ojson &d); int check_instance_status(std::string_view name, std::string &status); + int read_contract_cfg_values(std::string_view contract_name, std::string &log_level, bool &is_full_history); } // namespace hp #endif \ No newline at end of file diff --git a/src/hpfs_manager.cpp b/src/hpfs_manager.cpp new file mode 100644 index 0000000..f5d5f97 --- /dev/null +++ b/src/hpfs_manager.cpp @@ -0,0 +1,130 @@ +#include "hpfs_manager.hpp" +#include "util/util.hpp" +#include "conf.hpp" + +namespace hpfs +{ + constexpr ino_t ROOT_INO = 1; + constexpr uint16_t HPFS_PROCESS_INIT_TIMEOUT = 2000; + constexpr uint16_t HPFS_INIT_CHECK_INTERVAL = 20; + + /** + * Starts the hpfs process for the instance. + * @param fs_dir File system directory + * @param mount_dir Mount directory. + * @param log_level Log level for the hpfs. + * @param merge Whether changes are needed to be merged. + * @return -1 on error, pid of the spawned hpfs process if success. + */ + int start_hpfs_process(std::string_view fs_dir, std::string_view mount_dir, std::string_view log_level, const bool merge) + { + const pid_t pid = fork(); + if (pid > 0) + { + // Sashimono process. + + LOG_DEBUG << "Starting hpfs process at " << mount_dir << "."; + + // Wait until hpfs is initialized properly. + const uint16_t max_retries = HPFS_PROCESS_INIT_TIMEOUT / HPFS_INIT_CHECK_INTERVAL; + bool hpfs_initialized = false; + uint16_t retry_count = 0; + do + { + util::sleep(HPFS_INIT_CHECK_INTERVAL); + + // Check if hpfs process is still running. + // Sending signal 0 to test whether process exist. + if (util::kill_process(pid, false, 0) == -1) + { + LOG_ERROR << "hpfs process " << pid << " has stopped."; + break; + } + + // We check for the specific inode no. of the mounted root dir. That means hpfs FUSE interface is up. + struct stat st; + if (stat(mount_dir.data(), &st) == -1) + { + LOG_ERROR << errno << ": Error in checking hpfs status at mount " << mount_dir << "."; + break; + } + + hpfs_initialized = (st.st_ino == ROOT_INO); + // Keep retrying until root inode no. matches or timeout occurs. + + } while (!hpfs_initialized && ++retry_count <= max_retries); + + // Kill the process if hpfs couldn't be initialized properly. + if (!hpfs_initialized) + { + LOG_ERROR << "Couldn't initialize hpfs process at mount " << mount_dir << "."; + util::kill_process(pid, true); + return -1; + } + + LOG_DEBUG << "hpfs process started. pid:" << pid; + } + else if (pid == 0) + { + // hpfs process. + util::fork_detach(); + + // Detach hpfs terminal outputs from the sagent terminal, These will be printed in the trace log of particular hpfs mount. + int fd = open("/dev/null", O_WRONLY); + dup2(fd, STDOUT_FILENO); + dup2(fd, STDERR_FILENO); + close(fd); + + std::string trace_arg = "trace="; + trace_arg.append(log_level); + char *execv_args[] = { + conf::ctx.hpfs_exe_path.data(), + (char *)"fs", + (char *)fs_dir.data(), + (char *)mount_dir.data(), + (char *)(merge ? "merge=true" : "merge=false"), + (char *)trace_arg.data(), + NULL}; + + const int ret = execv(execv_args[0], execv_args); + std::cerr << errno << ": hpfs process start failed at mount " << mount_dir << ".\n"; + exit(1); + } + else + { + LOG_ERROR << errno << ": fork() failed when starting hpfs process at mount " << mount_dir << "."; + return -1; + } + + return pid; + } + + /** + * Creates hpfs processes for the instance. + * @param contract_dir Contract directory. + * @param log_level Log level for hpfs. + * @param is_full_history Whether hpfs instances are for full history node. + * @param pids pids of the hpfs instances. + * @return -1 on error and 0 on success and pids will be populated. + * + */ + int start_fs_processes(std::string_view contract_dir, std::string_view log_level, const bool is_full_history) + { + const std::string contract_fs_path = conf::cfg.hp.instance_folder + "/" + (const char *)contract_dir.data() + "/contract_fs"; + if (start_hpfs_process(contract_fs_path, contract_fs_path + "/mnt", log_level, !is_full_history) <= 0) + { + LOG_ERROR << errno << " : Error occured while starting contract_fs processes - " << contract_dir; + return -1; + } + + const std::string ledger_fs_path = conf::cfg.hp.instance_folder + "/" + (const char *)contract_dir.data() + "/ledger_fs"; + if (start_hpfs_process(ledger_fs_path, ledger_fs_path + "/mnt", log_level, true) <= 0) + { + LOG_ERROR << errno << " : Error occured while starting ledger_fs processes - " << contract_dir; + return -1; + } + + return 0; + } + +} // namespace hp diff --git a/src/hpfs_manager.hpp b/src/hpfs_manager.hpp new file mode 100644 index 0000000..d549c92 --- /dev/null +++ b/src/hpfs_manager.hpp @@ -0,0 +1,11 @@ +#ifndef _SA_HPFS_MANAGER_ +#define _SA_HPFS_MANAGER_ + +#include "pchheader.hpp" + +namespace hpfs +{ + int start_hpfs_process(std::string_view fs_dir, std::string_view mount_dir, std::string_view log_level, const bool merge = true); + int start_fs_processes(std::string_view contract_dir, std::string_view log_level, const bool is_full_history); +} // namespace hpfs +#endif \ No newline at end of file diff --git a/src/pchheader.hpp b/src/pchheader.hpp index 99e3173..e8a2259 100644 --- a/src/pchheader.hpp +++ b/src/pchheader.hpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/src/sqlite.cpp b/src/sqlite.cpp index d71feb2..ac0892a 100644 --- a/src/sqlite.cpp +++ b/src/sqlite.cpp @@ -347,8 +347,8 @@ namespace sqlite { // Populate only the necessary fields. info.status = std::string(reinterpret_cast(sqlite3_column_text(stmt, 2))); - info.assigned_ports.peer_port = sqlite3_column_int64(stmt, 5); - info.assigned_ports.user_port = sqlite3_column_int64(stmt, 6); + info.assigned_ports.peer_port = sqlite3_column_int64(stmt, 6); + info.assigned_ports.user_port = sqlite3_column_int64(stmt, 7); // Finalize and distroys the statement. sqlite3_finalize(stmt); diff --git a/src/util/util.cpp b/src/util/util.cpp index b97c8f2..54bece4 100644 --- a/src/util/util.cpp +++ b/src/util/util.cpp @@ -193,4 +193,23 @@ namespace util 1, FTW_DEPTH | FTW_PHYS); } + // Kill a process with a signal and if specified, wait until it stops running. + int kill_process(const pid_t pid, const bool wait, const int signal) + { + if (kill(pid, signal) == -1) + { + LOG_ERROR << errno << ": Error issuing signal to pid " << pid; + return -1; + } + + const int wait_options = wait ? 0 : WNOHANG; + if (waitpid(pid, NULL, wait_options) == -1) + { + LOG_ERROR << errno << ": waitpid after kill (pid:" << pid << ") failed."; + return -1; + } + + return 0; + } + } // namespace util diff --git a/src/util/util.hpp b/src/util/util.hpp index 4855cef..340ed06 100644 --- a/src/util/util.hpp +++ b/src/util/util.hpp @@ -30,7 +30,9 @@ namespace util uint64_t get_epoch_milliseconds(); - int remove_directory_recursively(std::string_view dir_path); + int remove_directory_recursively(std::string_view dir_path); + + int kill_process(const pid_t pid, const bool wait, const int signal = SIGINT); } // namespace util