From dcd003237afb6b0449ecffe3a7eb3d2acc61b28a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 14 Sep 2006 06:33:48 +0000 Subject: In unhardlink_lockfile(), make sure not to touch lockfilename unless we really have a lock. See bug #147453. svn path=/main/trunk/; revision=4446 --- pym/portage_locks.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pym/portage_locks.py b/pym/portage_locks.py index 4a61f6312..8e6a9803d 100644 --- a/pym/portage_locks.py +++ b/pym/portage_locks.py @@ -271,13 +271,16 @@ def hardlink_lockfile(lockfilename, max_wait=14400): def unhardlink_lockfile(lockfilename): myhardlock = hardlock_name(lockfilename) - try: - if os.path.exists(myhardlock): - os.unlink(myhardlock) - if os.path.exists(lockfilename): + if hardlink_is_mine(myhardlock, lockfilename): + # Make sure not to touch lockfilename unless we really have a lock. + try: os.unlink(lockfilename) + except OSError: + pass + try: + os.unlink(myhardlock) except OSError: - portage_util.writemsg("Something strange happened to our hardlink locks.\n") + pass def hardlock_cleanup(path, remove_all_locks=False): mypid = str(os.getpid()) -- cgit v1.2.3-1-g7c22