[YOCTO #14952] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=14952

Help avoid contention by adding a check to ensure files and directories
are at least 60s old when attempting to delete them from the trashdir,
in case bitbake or another process is still actively using them.

Signed-off-by: Trevor Gamblin <[email protected]>
---
 janitor/ab-janitor | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/janitor/ab-janitor b/janitor/ab-janitor
index 080b598..659817e 100755
--- a/janitor/ab-janitor
+++ b/janitor/ab-janitor
@@ -43,7 +43,13 @@ def trash_processor(trashdir):
         try:
             files = os.listdir(trashdir)
             if files:
-                os.system("nice -n 10 ionice -c 3 rm %s/* -rf" % trashdir)
+                for file in files:
+                    file_path = trashdir + "/" + file
+                    file_age = time.time() - os.path.getmtime(file_path)
+                    if file_age >= 60:
+                        os.system("nice -n 10 ionice -c 3 rm %s -rf" % 
file_path)
+                    else:
+                        print("Not removing '%s' - age is only %s seconds. 
There may be another process using it" % (file_path, str(int(file_age))))
             else:
                 time.sleep(120*60) # 30 minutes
         except Exception as e:
-- 
2.40.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#60272): https://lists.yoctoproject.org/g/yocto/message/60272
Mute This Topic: https://lists.yoctoproject.org/mt/99510262/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to