From dbfa2399b47aa3b9fef84709ff786b9bf69bf2d3 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Thu, 12 Nov 2020 12:09:19 -0700 Subject: [PATCH] Add better exception logging for builds When the exception is bubbled up through the multiprocessing bits, it loses some information so it's hard to troubleshoot. Let's log the exception in the multiprocessed function call and continue to raise the exception when things fail. Change-Id: Idbf56d97069e238bc6da61c7b3432fe37ecaf1a0 Related-Bug: #1904025 --- tripleo_common/image/builder/buildah.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tripleo_common/image/builder/buildah.py b/tripleo_common/image/builder/buildah.py index ce5338ef3..225f8f3ec 100644 --- a/tripleo_common/image/builder/buildah.py +++ b/tripleo_common/image/builder/buildah.py @@ -132,9 +132,17 @@ class BuildahBuilder(base.BaseBuilder): if container_name in self.excludes: return - self.build(container_name, self._find_container_dir(container_name)) - if self.push_containers: - self.push(self._get_destination(container_name)) + # NOTE(mwhahaha): Use a try catch block so we can better log issues + # as this is called in a multiprocess fashion so the exception + # loses some information when it reaches _multi_build + try: + self.build(container_name, + self._find_container_dir(container_name)) + if self.push_containers: + self.push(self._get_destination(container_name)) + except Exception as e: + self.log.exception(e) + raise @tenacity.retry( # Retry up to 3 times with 1 second delay reraise=True,