Skip to content

Commit

Permalink
Merge pull request #477 from jortel/issue-476
Browse files Browse the repository at this point in the history
Fix #476, file descriptor leak in transport.qpid.Transport.
  • Loading branch information
bmbouter committed May 11, 2015
2 parents 0287b11 + 25c56d9 commit 7a510ab
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
23 changes: 23 additions & 0 deletions kombu/tests/transport/test_qpid.py
Original file line number Diff line number Diff line change
Expand Up @@ -2023,3 +2023,26 @@ def test_default_connection_params(self):
my_transport = Transport(self.mock_client)
result_params = my_transport.default_connection_params
self.assertDictEqual(correct_params, result_params)

@patch('os.close')
def test_del(self, close):
my_transport = Transport(self.mock_client)
my_transport.__del__()
self.assertEqual(
close.call_args_list,
[
((my_transport.r,), {}),
((my_transport._w,), {}),
])

@patch('os.close')
def test_del_failed(self, close):
close.side_effect = OSError()
my_transport = Transport(self.mock_client)
my_transport.__del__()
self.assertEqual(
close.call_args_list,
[
((my_transport.r,), {}),
((my_transport._w,), {}),
])
11 changes: 11 additions & 0 deletions kombu/transport/qpid.py
Original file line number Diff line number Diff line change
Expand Up @@ -1707,3 +1707,14 @@ def default_connection_params(self):
return {'userid': 'guest', 'password': '',
'port': self.default_port, 'virtual_host': '',
'hostname': 'localhost', 'sasl_mechanisms': 'PLAIN ANONYMOUS'}

def __del__(self):
"""
Ensure file descriptors opened in __init__() are closed.
"""
for fd in (self.r, self._w):
try:
os.close(fd)
except OSError:
# ignored
pass

0 comments on commit 7a510ab

Please sign in to comment.