aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Congal <yoann.congal@smile.fr>2024-02-29 22:56:39 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-03-01 09:37:23 +0000
commit40d00bf9308e0bf73a00134a99a012a292daa1c5 (patch)
treec7810a6fc16bbe4d3303606e6f5419419892fd1a
parent1b3cd039fe19b24bd4be9a0202a98cdcbb0e9443 (diff)
downloadbitbake-40d00bf9308e0bf73a00134a99a012a292daa1c5.tar.gz
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 <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/prserv/serv.py5
1 files changed, 4 insertions, 1 deletions
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)