From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from hqnvemgate25.nvidia.com (hqnvemgate25.nvidia.com [216.228.121.64]) by mx.groups.io with SMTP id smtpd.web12.14.1590608525447374036 for ; Wed, 27 May 2020 12:42:05 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=n1 header.b=eptKvuGR; spf=pass (domain: nvidia.com, ip: 216.228.121.64, mailfrom: ipark@nvidia.com) Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Wed, 27 May 2020 12:40:41 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Wed, 27 May 2020 12:42:04 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Wed, 27 May 2020 12:42:04 -0700 Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 27 May 2020 19:42:04 +0000 Received: from hqnvemgw03.nvidia.com (10.124.88.68) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 27 May 2020 19:42:04 +0000 Received: from ipark-ubuntu.nvidia.com (Not Verified[10.28.100.106]) by hqnvemgw03.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Wed, 27 May 2020 12:42:04 -0700 From: Name To: CC: Irene Park Subject: [PATCH] BaseTools/Python: Add missing FatalError handling Date: Wed, 27 May 2020 15:41:35 -0400 Message-ID: <9bbe8b916c10aa4dd79f7cfceb1ed35dd1a8c5f5.1590607347.git.ipark@nvidia.com> X-Mailer: git-send-email 2.7.4 X-NVConfidentiality: public Return-Path: ipark@nvidia.com MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1590608441; bh=ZYF8YpwWfirfGxn8+7H1KBBbDnV4qSuPIBWrXLXNjqg=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: X-NVConfidentiality:MIME-Version:Content-Type; b=eptKvuGRSO4jbx4uUy78Qz/PWiDWuNJeHl25qAy3LdRKInGGRtgMtnciwg6fZ3uTE kdYk38tvyUnIYY4iBqAy+2Z+PCREm0cwxhASrCqljD+zjemTAOSgU9+Seqn3ICZgK8 pxch4H78OWp0/mWwVAUYa3DGbq+ONjjZseaqYU41CJjoo2r7Dw8cL8ink8J7E6+2LC tJcaCGW6DuOLobCHoLOJvjbhYueNntFum0BR1HoacTTSmZ/3vVBifZcz5sXcNiOo6e LjUPUhvMuHDR0tC/lEn8InvWxPEMQDmS4WMJefs8NVNoiBxTxEecFgA2YTrNd/sAs1 F0oeiEs0eLpWw== Content-Type: text/plain From: Irene Park AutoGenWorker doesn't handle the exception from FatalError therefore the build fails to return the proper error code at the exit. Signed-off-by: Irene Park --- BaseTools/Source/Python/AutoGen/AutoGenWorker.py | 6 ++++++ BaseTools/Source/Python/build/build.py | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py index 563d91b..2395964 100755 --- a/BaseTools/Source/Python/AutoGen/AutoGenWorker.py +++ b/BaseTools/Source/Python/AutoGen/AutoGenWorker.py @@ -24,6 +24,7 @@ import traceback import sys from AutoGen.DataPipe import MemoryDataPipe import logging +from Common.BuildToolError import FatalError def clearQ(q): try: @@ -101,6 +102,7 @@ class AutoGenManager(threading.Thread): self.autogen_workers = autogen_workers self.feedback_q = feedback_q self.Status = True + self.Error = 0 self.error_event = error_event def run(self): try: @@ -113,6 +115,7 @@ class AutoGenManager(threading.Thread): fin_num += 1 else: self.Status = False + self.Error = self.feedback_q.get() self.TerminateWorkers() if fin_num == len(self.autogen_workers): self.clearQueue() @@ -282,6 +285,9 @@ class AutoGenWorkerInProcess(mp.Process): except Empty: pass + except FatalError as e: + self.feedback_q.put(taskname) + self.feedback_q.put(e.args[0]) except: self.feedback_q.put(taskname) finally: diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index ed3a3b9..d6e3d84 100755 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -880,7 +880,10 @@ class Build(): self.AutoGenMgr.join() rt = self.AutoGenMgr.Status - return rt, 0 + err = 0 + if not rt: + err = self.AutoGenMgr.Error + return rt, err except FatalError as e: return False, e.args[0] except: -- 2.7.4