consumer connections not closed properly
heartbeat_thread is not set for listeners. when closing connection, it blindly checks heartbeat_thread and will throw an error causing connection to remain open. this patch explicitly sets heartbeat_thread to None. Change-Id: Ief3bf02f952882ecadf742cdd0bac8edd7812473 Closes-Bug: #1458917
This commit is contained in:
parent
d416889d0c
commit
41d0d875a1
|
@ -685,6 +685,7 @@ class Connection(object):
|
|||
# NOTE(sileht): if purpose is PURPOSE_LISTEN
|
||||
# the consume code does the heartbeat stuff
|
||||
# we don't need a thread
|
||||
self._heartbeat_thread = None
|
||||
if purpose == rpc_amqp.PURPOSE_SEND:
|
||||
self._heartbeat_start()
|
||||
|
||||
|
|
|
@ -200,13 +200,12 @@ class TestRabbitIterconsume(test_utils.BaseTestCase):
|
|||
'kombu+memory:////')
|
||||
self.addCleanup(transport.cleanup)
|
||||
channel = mock.Mock()
|
||||
conn = transport._driver._get_connection(amqp.PURPOSE_LISTEN
|
||||
).connection
|
||||
conn.connection.recoverable_channel_errors = (IOError,)
|
||||
with mock.patch.object(conn.connection, 'channel',
|
||||
side_effect=[IOError, IOError, channel]):
|
||||
conn.reset()
|
||||
self.assertEqual(channel, conn.channel)
|
||||
with transport._driver._get_connection(amqp.PURPOSE_LISTEN) as conn:
|
||||
conn.connection.connection.recoverable_channel_errors = (IOError,)
|
||||
with mock.patch.object(conn.connection.connection, 'channel',
|
||||
side_effect=[IOError, IOError, channel]):
|
||||
conn.connection.reset()
|
||||
self.assertEqual(channel, conn.connection.channel)
|
||||
|
||||
|
||||
class TestRabbitTransportURL(test_utils.BaseTestCase):
|
||||
|
|
Loading…
Reference in New Issue