From 4cebc13a4e48340166be4c20416d22723add0e07 Mon Sep 17 00:00:00 2001 From: Fumitoshi Ukai Date: Wed, 8 Jan 2025 10:25:48 -0800 Subject: [PATCH] bot_update: remove cleanup_dir when git cache is removed, gclient sync fails and old checkout is moved into cleanup_dir. It will cause out of disk error during build because cleanup_dir keeps full old checkout and build artifacts, which is no longer needed when bot_update succeeded to checkout. Remove cleanup_dir after checkout. Bug: 388307198 Change-Id: I3858e718622a1ef2012fe5b80a5d9b128d96d1d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6155955 Commit-Queue: Jie Sheng Reviewed-by: Yiwei Zhang Auto-Submit: Fumitoshi Ukai Owners-Override: Jie Sheng Reviewed-by: Junji Watanabe Reviewed-by: Jie Sheng --- .../bot_update/resources/bot_update.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/recipes/recipe_modules/bot_update/resources/bot_update.py b/recipes/recipe_modules/bot_update/resources/bot_update.py index 80636dd17..2d880764d 100755 --- a/recipes/recipe_modules/bot_update/resources/bot_update.py +++ b/recipes/recipe_modules/bot_update/resources/bot_update.py @@ -16,6 +16,7 @@ import optparse import os import pprint import re +import shutil import subprocess import sys import tempfile @@ -1142,7 +1143,16 @@ def checkout(options, git_slns, specs, revisions, step_text): properties['git_cache_epoch'] = cache_epoch usage = disk_usage() - # TODO(ukai): remove cleanup_dir if available disk space is small? + # successfully checked out. remove cleanup_dir to get free disk space. + if os.path.exists(cleanup_dir): + prev_usage = usage + print('Removing cleanup_dir %s' % cleanup_dir) + shutil.rmtree(cleanup_dir, ignore_errors=True) + usage = disk_usage() + print('Release %dGB (%d%%)' % + (prev_usage.used_disk_space_gb - usage.used_disk_space_gb, + prev_usage.percent_used - usage.percent_used)) + step_text = step_text + (' -> [%dGB/%dGB used (%d%%)]' % usage) # Tell recipes information such as root, got_revision, etc.