From: Zac Medico Date: Thu, 14 Sep 2006 06:33:48 +0000 (-0000) Subject: In unhardlink_lockfile(), make sure not to touch lockfilename unless we really have... X-Git-Tag: v2.1.1-r1~83 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=dcd003237afb6b0449ecffe3a7eb3d2acc61b28a;p=portage.git In unhardlink_lockfile(), make sure not to touch lockfilename unless we really have a lock. See bug #147453. svn path=/main/trunk/; revision=4446 --- 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())