From 969e175b65474c70484bf05361bc8dcc9382ae24 Mon Sep 17 00:00:00 2001 From: Dusko Mirkovic Date: Tue, 18 Jul 2023 16:59:55 +0200 Subject: [PATCH] CTX-4184: Fix a bug where experiment logs did not get properly uploaded --- coretex/project/base.py | 14 ++++++++------ coretex/project/experiment_worker.py | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/coretex/project/base.py b/coretex/project/base.py index a4c0dc98..091d4160 100644 --- a/coretex/project/base.py +++ b/coretex/project/base.py @@ -57,23 +57,28 @@ def onStart(self) -> None: logging.getLogger("coretexpylib").info(result["message"]) def onSuccess(self) -> None: - pass + logging.getLogger("coretexpylib").info("Experiment finished successfully") + + LogHandler.instance().flushLogs() + LogHandler.instance().reset() def onKeyboardInterrupt(self) -> None: pass def onException(self, exception: BaseException) -> None: + logging.getLogger("coretexpylib").critical("Experiment failed to finish due to an error") logging.getLogger("coretexpylib").debug(exception, exc_info = True) logging.getLogger("coretexpylib").critical(str(exception)) + LogHandler.instance().flushLogs() + LogHandler.instance().reset() + def onNetworkConnectionLost(self) -> None: FolderManager.instance().clearTempFiles() sys.exit(1) def onCleanUp(self) -> None: - logging.getLogger("coretexpylib").info("Experiment execution finished") - self.workerProcess.kill() self.workerProcess.join() @@ -83,7 +88,4 @@ def onCleanUp(self) -> None: except: pass - LogHandler.instance().flushLogs() - LogHandler.instance().reset() - FolderManager.instance().clearTempFiles() diff --git a/coretex/project/experiment_worker.py b/coretex/project/experiment_worker.py index 4990901c..8805f950 100644 --- a/coretex/project/experiment_worker.py +++ b/coretex/project/experiment_worker.py @@ -153,7 +153,7 @@ def experimentWorker(output: Connection, refreshToken: str, experimentId: int) - sendSuccess(output, "Experiment worker succcessfully started") while (parent := currentProcess.parent()) is not None: - logging.getLogger("coretexpylib").debug(f">> [Coretex] Worker process id {currentProcess.pid}, parent process id {parent.pid}...") + logging.getLogger("coretexpylib").debug(f">> [Coretex] Worker process id {currentProcess.pid}, parent process id {parent.pid}") # If parent process ID is set to 1 then that means that the parent process has terminated # the process (this is only true for Unix-based systems), but since we run the Node