summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-03-25 00:28:32 +0000
committerGerrit Code Review <review@openstack.org>2015-03-25 00:28:32 +0000
commit696ef560193258d0313f8ed6cee54179766234cc (patch)
tree570a1cc0e0c40be64c16f6c23aa026833aa4ddf0
parent7cddd594abf0c76de32f532984e34eb28a5d8b2a (diff)
parentb5f91b2167f9c5a32620ebf7c62a9865ed125070 (diff)
downloadoslo-messaging-696ef560193258d0313f8ed6cee54179766234cc.tar.gz
Merge "Reconnect on connection lost in heartbeat thread" into stable/kilo
-rw-r--r--oslo_messaging/_drivers/impl_rabbit.py1
-rw-r--r--oslo_messaging/tests/drivers/test_impl_rabbit.py8
2 files changed, 8 insertions, 1 deletions
diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py
index b24e67a..08e556b 100644
--- a/oslo_messaging/_drivers/impl_rabbit.py
+++ b/oslo_messaging/_drivers/impl_rabbit.py
@@ -951,6 +951,7 @@ class Connection(object):
except recoverable_errors as exc:
LOG.info(_LI("A recoverable connection/channel error "
"occurred, trying to reconnect: %s"), exc)
+ self.ensure_connection()
except Exception:
LOG.exception(_LE("Unexpected error during heartbeart "
"thread processing, retrying..."))
diff --git a/oslo_messaging/tests/drivers/test_impl_rabbit.py b/oslo_messaging/tests/drivers/test_impl_rabbit.py
index 3f3145f..dacb40a 100644
--- a/oslo_messaging/tests/drivers/test_impl_rabbit.py
+++ b/oslo_messaging/tests/drivers/test_impl_rabbit.py
@@ -62,7 +62,10 @@ class TestHeartbeat(test_utils.BaseTestCase):
@mock.patch('kombu.connection.Connection.heartbeat_check')
@mock.patch('oslo_messaging._drivers.impl_rabbit.Connection.'
'_heartbeat_supported_and_enabled', return_value=True)
- def _do_test_heartbeat_sent(self, fake_heartbeat_support, fake_heartbeat,
+ @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection.'
+ 'ensure_connection')
+ def _do_test_heartbeat_sent(self, fake_ensure_connection,
+ fake_heartbeat_support, fake_heartbeat,
fake_logger, heartbeat_side_effect=None,
info=None):
@@ -79,6 +82,7 @@ class TestHeartbeat(test_utils.BaseTestCase):
'kombu+memory:////')
self.addCleanup(transport.cleanup)
conn = transport._driver._get_connection()
+ conn.ensure(method=lambda: True)
event.wait()
conn._heartbeat_stop()
@@ -86,8 +90,10 @@ class TestHeartbeat(test_utils.BaseTestCase):
self.assertLess(0, fake_heartbeat.call_count)
if not heartbeat_side_effect:
+ self.assertEqual(1, fake_ensure_connection.call_count)
self.assertEqual(2, fake_logger.info.call_count)
else:
+ self.assertEqual(2, fake_ensure_connection.call_count)
self.assertEqual(3, fake_logger.info.call_count)
self.assertIn(mock.call(info, mock.ANY),
fake_logger.info.mock_calls)