From 49a928bdcf527c9fc4dc6940715f6fa19ec389da Mon Sep 17 00:00:00 2001 From: Michael Elsdoerfer Date: Tue, 4 Feb 2014 10:43:25 +0100 Subject: [PATCH 1/2] Fix exception handling, warn needs a string. --- docker_dns.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker_dns.py b/docker_dns.py index 6466b1a..65274cc 100755 --- a/docker_dns.py +++ b/docker_dns.py @@ -118,12 +118,12 @@ def lookup_container(self, name): except docker.client.APIError as ex: # 404 is valid, others aren't if ex.response.status_code != 404: - warn(ex) + warn(str(ex)) return None except RequestException as ex: - warn(ex) + warn(str(ex)) return None def get_a(self, name): From 90da8fbceca826f315069b0cdd2c5a82f37779b3 Mon Sep 17 00:00:00 2001 From: Michael Elsdoerfer Date: Tue, 4 Feb 2014 10:43:59 +0100 Subject: [PATCH 2/2] Do not hide unexpected exceptions during debugging. --- docker_dns.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker_dns.py b/docker_dns.py index 65274cc..c072ccc 100755 --- a/docker_dns.py +++ b/docker_dns.py @@ -197,7 +197,10 @@ def lookupAddress(self, name, timeout=None): # We need to catch everything. Uncaught exceptian will make the server # stop responding - except: # pylint:disable=bare-except + except Exception, e: # pylint:disable=bare-except + if type(e) != DomainError: + import traceback + traceback.print_exc() if CONFIG['no_nxdomain']: # FIXME surely there's a better way to give SERVFAIL exception = DNSQueryTimeoutError(name)