From 8419659e1b0e3578ae3cb0b702f5a96ee82ea729 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 30 Jan 2024 09:48:17 -0500 Subject: [PATCH] Ensure zkhandler is always cleaned up Even if the subfunction of an API @ZKConnection call fails, the zkhandler needs to terminate and clean up, or it leaves stuck threads around. --- daemon-common/zkhandler.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/daemon-common/zkhandler.py b/daemon-common/zkhandler.py index 29d14c57..6f83799f 100644 --- a/daemon-common/zkhandler.py +++ b/daemon-common/zkhandler.py @@ -57,10 +57,11 @@ class ZKConnection(object): schema_version = 0 zkhandler.schema.load(schema_version, quiet=True) - ret = function(zkhandler, *args, **kwargs) - - zkhandler.disconnect() - del zkhandler + try: + ret = function(zkhandler, *args, **kwargs) + finally: + zkhandler.disconnect() + del zkhandler return ret