From a1af5de033dabde60d759364db339a1146137ed1 Mon Sep 17 00:00:00 2001
From: Felix Tomski <tomski@itc.rwth-aachen.de>
Date: Wed, 11 Oct 2023 13:04:31 +0200
Subject: [PATCH] Dirty fix for data race on concurrent tmp

---
 core/job.py             | 8 +++++---
 core/utility/defines.py | 3 +++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/core/job.py b/core/job.py
index 4f9aa0a..d033836 100644
--- a/core/job.py
+++ b/core/job.py
@@ -3,7 +3,7 @@ import subprocess
 import os
 import logging
 import sys
-from time import sleep
+import time
 import importlib.resources as importlib_resources
 
 import core.modes as modes
@@ -64,7 +64,7 @@ class Job:
                 pdb_attach.listen(port)
                 if self.args[1] != 'config':
                     logging.debug(f'Debug mode on listening on port {port}')
-                    sleep(100)
+                    time.sleep(100)
             except ImportError:
                 if self.args[1] != 'config':
                     logging.warning('Debug mode on but pdb_attach module not found')
@@ -167,8 +167,10 @@ class Job:
 
     def prepare(self):
         if os.path.isdir(self.concurrent_tmp):
+            now = time.time()
             for p in os.listdir(f'{self.concurrent_tmp}'):
-                if p != self.pipeline_id and os.path.isdir(f'{self.concurrent_tmp}/{p}'):
+                if (p != self.pipeline_id and os.path.isdir(f'{self.concurrent_tmp}/{p}') and
+                    os.stat(f'{self.concurrent_tmp}/{p}').st_mtime < (now - defines.cc_tmp_del_range * defines.seconds_per_day)):
                     logging.debug(f'Removing concurrent_tmp: {self.concurrent_tmp}/{p}')
                     os.system(f'rm -r {self.concurrent_tmp}/{p}')
 
diff --git a/core/utility/defines.py b/core/utility/defines.py
index 366423d..beac7f3 100644
--- a/core/utility/defines.py
+++ b/core/utility/defines.py
@@ -5,3 +5,6 @@ version = '0.5.4'
 debug = False
 stdout_logging = False
 log_level = logging.DEBUG
+
+seconds_per_day = 86400
+cc_tmp_del_range = 2
-- 
GitLab