diff options
author | Yoann Congal <yoann.congal@smile.fr> | 2024-02-29 22:56:39 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-03-01 09:37:23 +0000 |
commit | 40d00bf9308e0bf73a00134a99a012a292daa1c5 (patch) | |
tree | c7810a6fc16bbe4d3303606e6f5419419892fd1a | |
parent | 1b3cd039fe19b24bd4be9a0202a98cdcbb0e9443 (diff) | |
download | bitbake-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.py | 5 |
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) |