From e4a51416586f73593ac68bf0d2a74c53a4875f7e Mon Sep 17 00:00:00 2001 From: radhika Date: Tue, 22 Nov 2016 14:06:59 -0500 Subject: [PATCH] 10293: invoke output_callback in a try/except block --- sdk/cwl/arvados_cwl/arvcontainer.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py index b127f681fd..c349839a5d 100644 --- a/sdk/cwl/arvados_cwl/arvcontainer.py +++ b/sdk/cwl/arvados_cwl/arvcontainer.py @@ -115,9 +115,9 @@ class ArvadosContainer(object): body=container_request ).execute(num_retries=self.arvrunner.num_retries) - self.arvrunner.processes[response["uuid"]] = response["uuid"] + self.arvrunner.processes[response["uuid"]] = self - logger.info("Container request %s (%s) state is %s with container %s %s", self.name, response["uuid"], response["state"]) + logger.info("Container request %s (%s) state is %s", self.name, response["uuid"], response["state"]) if response["state"] == "Final": self.done(response) @@ -146,9 +146,14 @@ class ArvadosContainer(object): processStatus = "permanentFail" outputs = {} + if container["output"]: outputs = done.done_outputs(self, container, "/tmp", self.outdir, "/keep") - self.output_callback(outputs, processStatus) + try: + self.output_callback(outputs, processStatus) + except Exception as e: + logger.error("Got error %s" % str(e)) + self.output_callback({}, "permanentFail") finally: del self.arvrunner.processes[record["uuid"]] -- 2.30.2