From 2a1aac8c3b84509da9c589fde1ec911304535139 Mon Sep 17 00:00:00 2001 From: Michael Schier Date: Tue, 23 Sep 2014 01:40:04 +1200 Subject: [PATCH] close thrift connection upon exception --- elasticsearch/connection/thrift.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/elasticsearch/connection/thrift.py b/elasticsearch/connection/thrift.py index f0d92b2a..aa4550e3 100644 --- a/elasticsearch/connection/thrift.py +++ b/elasticsearch/connection/thrift.py @@ -49,6 +49,7 @@ class ThriftConnection(PoolingConnection): protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport) client = Rest.Client(protocol) + client.transport = transport transport.open() return client @@ -64,10 +65,11 @@ class ThriftConnection(PoolingConnection): duration = time.time() - start except (TException, SocketTimeout) as e: self.log_request_fail(method, url, body, time.time() - start, exception=e) - raise ConnectionError('N/A', str(e), e) - finally: if tclient: - self._release_connection(tclient) + tclient.transport.close() + raise ConnectionError('N/A', str(e), e) + + self._release_connection(tclient) if not (200 <= response.status < 300) and response.status not in ignore: self.log_request_fail(method, url, body, duration, response.status)