From ecc5385565685bb5a4c4b2e1af3afb3ffea30937 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 18 Jun 2019 13:28:40 -0400 Subject: [PATCH] 15296: Shutdown cancels processes unless running inside a container Suppress errors in cancel request (such as a double-cancel race). Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- sdk/cwl/arvados_cwl/executor.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sdk/cwl/arvados_cwl/executor.py b/sdk/cwl/arvados_cwl/executor.py index 190ea35e2a..9a94095ae8 100644 --- a/sdk/cwl/arvados_cwl/executor.py +++ b/sdk/cwl/arvados_cwl/executor.py @@ -780,11 +780,16 @@ http://doc.arvados.org/install/install-api-server.html#disable_api_methods if self.pipeline: self.api.pipeline_instances().update(uuid=self.pipeline["uuid"], body={"state": "Failed"}).execute(num_retries=self.num_retries) - if runtimeContext.submit and isinstance(tool, Runner): - runnerjob = tool - if runnerjob.uuid and self.work_api == "containers": - self.api.container_requests().update(uuid=runnerjob.uuid, - body={"priority": "0"}).execute(num_retries=self.num_retries) + + if self.work_api == "containers" and not current_container: + # Not running in a crunch container, so cancel any outstanding processes. + for p in self.processes: + try: + self.api.container_requests().update(uuid=p, + body={"priority": "0"} + ).execute(num_retries=self.num_retries) + except Exception: + pass finally: self.workflow_eval_lock.release() self.task_queue.drain() -- 2.30.2