mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
Clean up temp dirs when breaking locks.
A number of bots have been running out of disk space because they are accumulating temp dirs and temp pack files. Be more careful to clean up temp dirs whenever UnlockAll() is called. R=hinoka@chromium.org,agable@chromium.org BUG= Review URL: https://codereview.chromium.org/335253002 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@277812 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
13
git_cache.py
13
git_cache.py
@@ -278,7 +278,7 @@ class Mirror(object):
|
||||
|
||||
# Download zip file to a temporary directory.
|
||||
try:
|
||||
tempdir = tempfile.mkdtemp()
|
||||
tempdir = tempfile.mkdtemp(prefix='_cache_tmp', dir=self.GetCachePath())
|
||||
self.print('Downloading %s' % latest_checkout)
|
||||
code = gsutil.call('cp', latest_checkout, tempdir)
|
||||
if code:
|
||||
@@ -344,7 +344,7 @@ class Mirror(object):
|
||||
len(pack_files) > GC_AUTOPACKLIMIT)
|
||||
if should_bootstrap:
|
||||
tempdir = tempfile.mkdtemp(
|
||||
suffix=self.basedir, dir=self.GetCachePath())
|
||||
prefix='_cache_tmp', suffix=self.basedir, dir=self.GetCachePath())
|
||||
bootstrapped = not depth and bootstrap and self.bootstrap_repo(tempdir)
|
||||
if bootstrapped:
|
||||
# Bootstrap succeeded; delete previous cache, if any.
|
||||
@@ -408,8 +408,8 @@ class Mirror(object):
|
||||
except OSError:
|
||||
logging.warn('Unable to delete temporary pack file %s' % f)
|
||||
|
||||
@staticmethod
|
||||
def BreakLocks(path):
|
||||
@classmethod
|
||||
def BreakLocks(cls, path):
|
||||
did_unlock = False
|
||||
lf = Lockfile(path)
|
||||
if lf.break_lock():
|
||||
@@ -420,6 +420,7 @@ class Mirror(object):
|
||||
if os.path.exists(lf):
|
||||
os.remove(lf)
|
||||
did_unlock = True
|
||||
cls.DeleteTmpPackFiles(path)
|
||||
return did_unlock
|
||||
|
||||
def unlock(self):
|
||||
@@ -432,7 +433,9 @@ class Mirror(object):
|
||||
repo_dirs = set([os.path.join(cachepath, path) for path in dirlist
|
||||
if os.path.isdir(os.path.join(cachepath, path))])
|
||||
for dirent in dirlist:
|
||||
if (dirent.endswith('.lock') and
|
||||
if dirent.startswith('_cache_tmp') or dirent.startswith('tmp'):
|
||||
gclient_utils.rmtree(os.path.join(cachepath, dirent))
|
||||
elif (dirent.endswith('.lock') and
|
||||
os.path.isfile(os.path.join(cachepath, dirent))):
|
||||
repo_dirs.add(os.path.join(cachepath, dirent[:-5]))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user