From ef88dee4f77ca95ec79e62d08fc0a01e83528e11 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Thu, 29 Feb 2024 22:56:39 +0100 Subject: [PATCH] bitbake: 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] (Bitbake rev: 40d00bf9308e0bf73a00134a99a012a292daa1c5) Signed-off-by: Yoann Congal Signed-off-by: Richard Purdie --- bitbake/lib/prserv/serv.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py index 62d3b5a01c..5fc8863f70 100644 --- a/bitbake/lib/prserv/serv.py +++ b/bitbake/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)