From fc21cde1c26bbb6c7abbc0890a88381aabed67fa Mon Sep 17 00:00:00 2001 From: Romain LE DISEZ Date: Tue, 26 Sep 2017 14:57:26 +0200 Subject: [PATCH] Fix a socket leak in case of broken connection Change-Id: I39cbbe5915ab95fb0927b0899b8f09870b4c0b07 --- ceilometermiddleware/swift.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ceilometermiddleware/swift.py b/ceilometermiddleware/swift.py index ee2d8d6..a44f45e 100644 --- a/ceilometermiddleware/swift.py +++ b/ceilometermiddleware/swift.py @@ -131,6 +131,11 @@ class InputProxy(object): self.bytes_received += len(line) return line + def close(self): + close_method = getattr(self.wsgi_input, 'close', None) + if callable(close_method): + close_method() + class KeystoneClientLoader(ksa_adapter.Adapter): """Keystone client adapter loader. @@ -272,6 +277,9 @@ class Swift(object): except StopIteration: chunk = '' finally: + close_method = getattr(iterable, 'close', None) + if callable(close_method): + close_method() self.emit_event(env, input_proxy.bytes_received, bytes_sent) try: