diff --git a/nvflare/private/fed/server/training_cmds.py b/nvflare/private/fed/server/training_cmds.py index 39924d2e4a9..52ed7e83453 100644 --- a/nvflare/private/fed/server/training_cmds.py +++ b/nvflare/private/fed/server/training_cmds.py @@ -442,6 +442,10 @@ def shutdown(self, conn: Connection, args: List[str]): if not isinstance(engine, ServerEngineInternalSpec): raise TypeError("engine must be ServerEngineInternalSpec but got {}".format(type(engine))) + if engine.job_runner.running_jobs: + conn.append_error("There are still jobs running. Please let them finish or abort_job before shutdown.") + return + if target_type == self.TARGET_TYPE_SERVER: if engine.get_clients(): conn.append_error("There are still active clients. Shutdown all clients first.") @@ -516,6 +520,10 @@ def restart(self, conn: Connection, args: List[str]): if not isinstance(engine, ServerEngineInternalSpec): raise TypeError("engine must be ServerEngineInternalSpec but got {}".format(type(engine))) + if engine.job_runner.running_jobs: + conn.append_error("There are still jobs running. Please let them finish or abort_job before restart.") + return + target_type = args[1] if target_type == self.TARGET_TYPE_SERVER or target_type == self.TARGET_TYPE_ALL: