Zombies may never run and touch locked data again, so for all practical purposes, they don't exist. --- yum/__init__.py | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/yum/__init__.py b/yum/__init__.py index 1807d61..c3b5255 100644 --- a/yum/__init__.py +++ b/yum/__init__.py @@ -1900,6 +1900,12 @@ class YumBase(depsolve.Depsolve): msg = _('Unable to check if PID %s is active') % oldpid raise Errors.LockError(errno.EPERM, msg, oldpid) else: + try: st = open("/proc/%d/stat" % oldpid).read().split()[2] + except: st = None + if st == 'Z': + # The pid is a zombie. + self._unlock(lockfile) + continue # Another copy seems to be running. msg = _('Existing lock %s: another copy is running as pid %s.') % (lockfile, oldpid) raise Errors.LockError(0, msg, oldpid) -- 1.7.4.4 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel