diff --git a/libraries/entropy/client/interfaces/methods.py b/libraries/entropy/client/interfaces/methods.py index c3bede0a6..b323de4f2 100644 --- a/libraries/entropy/client/interfaces/methods.py +++ b/libraries/entropy/client/interfaces/methods.py @@ -965,10 +965,19 @@ class MiscMixin: def resources_remove_lock(self): if hasattr(self, "_resources_lock_fd"): + + if self._resources_lock_fd is not None: + try: + fcntl.flock(self._resources_lock_fd, fcntl.LOCK_UN) + except IOError, err: + if err.errno == errno.EBADF: + self._resources_lock_fd = None + else: + raise if self._resources_lock_fd is not None: - fcntl.flock(self._resources_lock_fd, fcntl.LOCK_UN) os.close(self._resources_lock_fd) self._resources_lock_fd = None + if os.access(etpConst['locks']['using_resources'], os.F_OK | os.W_OK): os.remove(etpConst['locks']['using_resources'])