cbuildbot_launch: add debugging logic to cleanup timeout
The chroot cleanup is timing out on bots. Add some debugging
logic for when this happens to try & figure out what's going on.
BUG=chromium:1000034
TEST=precq passes
Change-Id: I999c166da36f1f1075bab226661bb2f22bb9990f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1780892
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cbuildbot_launch.py b/scripts/cbuildbot_launch.py
index 16c4544..06b14ec 100644
--- a/scripts/cbuildbot_launch.py
+++ b/scripts/cbuildbot_launch.py
@@ -32,6 +32,7 @@
from chromite.lib import cros_sdk_lib
from chromite.lib import metrics
from chromite.lib import osutils
+from chromite.lib import timeout_util
from chromite.lib import ts_mon_config
from chromite.scripts import cbuildbot
@@ -424,7 +425,17 @@
chroot_dir = os.path.join(buildroot, constants.DEFAULT_CHROOT_DIR)
logging.info('Cleaning up chroot at %s', chroot_dir)
if os.path.exists(chroot_dir) or os.path.exists(chroot_dir + '.img'):
- cros_sdk_lib.CleanupChrootMount(chroot_dir, delete=False)
+ try:
+ cros_sdk_lib.CleanupChrootMount(chroot_dir, delete=False)
+ except timeout_util.TimeoutError:
+ logging.exception('Cleaning up chroot timed out')
+ # Dump debug info to help https://crbug.com/1000034.
+ cros_build_lib.RunCommand(['mount'], error_code_ok=False)
+ cros_build_lib.SudoRunCommand(['losetup', '-a'], error_code_ok=False)
+ cros_build_lib.RunCommand(['dmesg'], error_code_ok=False)
+ return False
+
+ return True
def ConfigureGlobalEnvironment():
@@ -509,7 +520,8 @@
SetLastBuildState(root, build_state)
with metrics.SecondsTimer(METRIC_CHROOT_CLEANUP):
- CleanupChroot(buildroot)
+ if not CleanupChroot(buildroot):
+ result = 1
return result