13306: Prevents multiple RunTimeStatusLoggingHandlers from being added
authorEric Biagiotti <ebiagiotti@veritasgenetcs.com>
Thu, 17 Jan 2019 15:02:43 +0000 (10:02 -0500)
committerEric Biagiotti <ebiagiotti@veritasgenetcs.com>
Thu, 17 Jan 2019 15:02:43 +0000 (10:02 -0500)
Arvados-DCO-1.1-Signed-off-by:  Eric Biagiotti <ebiagiotti@veritasgenetics.com>

sdk/cwl/arvados_cwl/executor.py

index 60ea2ce8247653b5558555f7dfbab1fc08fd281a..e5a3d598582094466a918aadf44be8657c25cac2 100644 (file)
@@ -185,6 +185,11 @@ http://doc.arvados.org/install/install-api-server.html#disable_api_methods
         # if running inside a container
         if arvados_cwl.util.get_current_container(self.api, self.num_retries, logger):
             root_logger = logging.getLogger('')
+
+            # Remove existing RuntimeStatusLoggingHandlers if they exist
+            handlers = [h for h in root_logger.handlers if not isinstance(h, RuntimeStatusLoggingHandler)]
+            root_logger.handlers = handlers
+
             handler = RuntimeStatusLoggingHandler(self.runtime_status_update)
             root_logger.addHandler(handler)