Description of problem: There is a messed up code in _drivers/impl_rabbit.py which causing that autoretry reconnection is always triggered every second despite rabbit_retry_backoff option being set (in default to 2). Specifically: 865 autoretry_method = self.connection.autoretry( 866 execute_method, channel=self.channel, 867 max_retries=retry, 868 errback=on_error, 869 interval_start=self.interval_start or 1, 870 interval_step=self.interval_stepping, 871 on_revive=on_reconnection, 872 ) There is no interval_max=self.interval_max parameter specified (hardcoded to value 30). Method kombu.connection.autoretry() calls kombu.connectio.ensure() which sets interval_max to 1 by default so backing off cannot have any effect since max interval is 1. It would be nice to be able to set interval_max in component configs and not hardcoded it to 30 maybe. Version-Release number of selected component (if applicable): python-oslo-messaging-2.5.0-4.el7ost.noarch How reproducible: Always Steps to Reproduce: 1. Set rabbit_retry_backoff to anything 2+ 2. Take down rabbitmq server Actual results: Reconenction is actually happening every second, instead of interval being backed off by 2+ seconds each try up to 30 seconds Expected results: Additional info:
python-oslo-messaging-2.5.0-5.el7ost is ready for tests.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-0603.html