From e527cc7e2ec1493ce67641a546e4e1c9627e7f0b Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sun, 6 Nov 2011 19:08:35 +0100 Subject: [PATCH] [entropy.client.interfaces.methods] _create_pid_file_lock: handle ENOENT & EACCES correctly, close bug 2835 --- lib/entropy/client/interfaces/methods.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/entropy/client/interfaces/methods.py b/lib/entropy/client/interfaces/methods.py index 0b66dcc71..92ca0836a 100644 --- a/lib/entropy/client/interfaces/methods.py +++ b/lib/entropy/client/interfaces/methods.py @@ -1735,7 +1735,13 @@ class MiscMixin: else: flags = fcntl.LOCK_EX | fcntl.LOCK_NB - pid_f = open(pidfile, "a+") + try: + pid_f = open(pidfile, "a+") + except IOError as err: + if err.errno in (errno.ENOENT, errno.EACCES): + # cannot get lock or dir doesn't exist + return False + raise try: fcntl.flock(pid_f.fileno(), flags) except IOError as err: