From 3472999a7c9ea80d4328dd8056dcc9ff01244c7a Mon Sep 17 00:00:00 2001 From: dbeltran Date: Wed, 29 May 2024 11:57:13 +0200 Subject: [PATCH 1/2] added setproc name and atexit --- autosubmit/platforms/platform.py | 22 +++++++++++++++------- requeriments.txt | 1 + setup.py | 4 +++- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/autosubmit/platforms/platform.py b/autosubmit/platforms/platform.py index 438078118..4b46b9e6f 100644 --- a/autosubmit/platforms/platform.py +++ b/autosubmit/platforms/platform.py @@ -1,9 +1,7 @@ -import copy +import atexit import queue - -import time - +import setproctitle import locale import os @@ -13,14 +11,23 @@ from typing import List, Union from autosubmit.helpers.parameters import autosubmit_parameter from log.log import AutosubmitCritical, AutosubmitError, Log -from multiprocessing import Process, Queue +from multiprocessing import Process, Queue, Event +# stop the background task gracefully before exit +def stop_background(stop_event, process): + # request the background thread stop + stop_event.set() + # wait for the background thread to stop + process.join() def processed(fn): def wrapper(*args, **kwargs): + stop_event = Event() + args = (args[0], stop_event) process = Process(target=fn, args=args, kwargs=kwargs, name=f"{args[0].name}_platform") process.daemon = True # Set the process as a daemon process process.start() + atexit.register(stop_background, stop_event, process) return process return wrapper @@ -816,11 +823,12 @@ class Platform(object): raise NotImplementedError @processed - def recover_job_logs(self): + def recover_job_logs(self, event): + setproctitle.setproctitle(f"autosubmit log {self.expid} recovery {self.name.lower()}") job_names_processed = set() self.connected = False self.restore_connection(None) - while True: + while not event.is_set(): try: job,children = self.recovery_queue.get() if job.wrapper_type != "vertical": diff --git a/requeriments.txt b/requeriments.txt index 55ebc8abf..a48d26732 100644 --- a/requeriments.txt +++ b/requeriments.txt @@ -1,3 +1,4 @@ +setproctitle==1.2.2 xlib==0.21 setuptools<=68.2.2 bscearth.utils<=0.5.2 diff --git a/setup.py b/setup.py index 1ff4f6006..d4a763a16 100644 --- a/setup.py +++ b/setup.py @@ -64,7 +64,9 @@ setup( 'rocrate==0.*', 'autosubmitconfigparser==1.0.62', 'configparser', - 'pathlib' + 'pathlib', + 'setproctitle' + ], extras_require={ ':python_version <= "3.7"': -- GitLab From 981e0aad333e2cfc9a669f0c56801d6bca2692c4 Mon Sep 17 00:00:00 2001 From: dbeltran Date: Thu, 30 May 2024 09:48:21 +0200 Subject: [PATCH 2/2] pipeline fixing --- environment.yml | 1 + requeriments.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 3cde1afa2..56b5d33ea 100644 --- a/environment.yml +++ b/environment.yml @@ -43,4 +43,5 @@ dependencies: - requests - configobj - psutil + - setproctitle diff --git a/requeriments.txt b/requeriments.txt index a48d26732..80e3d68ca 100644 --- a/requeriments.txt +++ b/requeriments.txt @@ -1,4 +1,4 @@ -setproctitle==1.2.2 +setproctitle xlib==0.21 setuptools<=68.2.2 bscearth.utils<=0.5.2 -- GitLab