From 40d00bf9308e0bf73a00134a99a012a292daa1c5 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Thu, 29 Feb 2024 22:56:39 +0100 Subject: prserv/serv: Fix a PID file removal race on prserv stop A race condition has happened where the exiting server removed the PID file between the existence check and the removal, resulting in a FileNotFoundError exception. The fix is to ignore the FileNotFoundError exception, the existence check is now redundant so remove it to simplify. Fixes [YOCTO #14341] Signed-off-by: Yoann Congal Signed-off-by: Richard Purdie --- lib/prserv/serv.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/prserv/serv.py b/lib/prserv/serv.py index 62d3b5a01..5fc8863f7 100644 --- a/lib/prserv/serv.py +++ b/lib/prserv/serv.py @@ -262,8 +262,11 @@ def stop_daemon(host, port): os.kill(pid, signal.SIGTERM) time.sleep(0.1) - if os.path.exists(pidfile): + try: os.remove(pidfile) + except FileNotFoundError: + # The PID file might have been removed by the exiting process + pass except OSError as e: err = str(e) -- cgit 1.2.3-korg