diff --git a/PILOTVERSION b/PILOTVERSION index 9f922ddf..a1c45371 100644 --- a/PILOTVERSION +++ b/PILOTVERSION @@ -1 +1 @@ -3.9.2.32 \ No newline at end of file +3.9.2.33 \ No newline at end of file diff --git a/pilot/util/constants.py b/pilot/util/constants.py index c9f9f022..e1af55a8 100644 --- a/pilot/util/constants.py +++ b/pilot/util/constants.py @@ -28,7 +28,7 @@ RELEASE = '3' # released number should be fixed at 3 for Pilot 3 VERSION = '9' # version number is '1' for first release, '0' until then, increased for bigger updates REVISION = '2' # revision number should be reset to '0' for every new version release, increased for small updates -BUILD = '32' # build number should be reset to '1' for every new development cycle +BUILD = '33' # build number should be reset to '1' for every new development cycle SUCCESS = 0 FAILURE = 1 diff --git a/pilot/util/psutils.py b/pilot/util/psutils.py index b25a473f..90eb6394 100644 --- a/pilot/util/psutils.py +++ b/pilot/util/psutils.py @@ -335,10 +335,16 @@ def find_lingering_processes(parent_pid: int) -> list: return [] lingering_processes = [] - parent_process = psutil.Process(parent_pid) - for child in parent_process.children(recursive=True): - if child.status() != psutil.STATUS_ZOMBIE: - lingering_processes.append(child.pid) + try: + parent_process = psutil.Process(parent_pid) + for child in parent_process.children(recursive=True): + try: + if child.status() != psutil.STATUS_ZOMBIE: + lingering_processes.append(child.pid) + except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e: + logger.warning(f"[harmless] failed to get status for child process {child.pid}: {e}") + except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess, psutil.FileNotFoundError) as e: + logger.warning(f"[harmless] failed to get parent process {parent_pid}: {e}") return lingering_processes