rabbit: AttributeError: 'Connection' object has no attribute 'driver_conf'

Bug #1423438 reported by Matt Riedemann
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
oslo.messaging
Invalid
Undecided
Unassigned

Bug Description

Running with oslo.messaging 1.6.0 + the patch for https://github.com/openstack/oslo.messaging/commit/68cd8cfecc12a40b61a7b8557aad7b5a4e1f1c6d and the following settings:

+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_host localhost
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_port 5671
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_use_ssl true
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_userid guest
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_password <password>
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_virtual_host /
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_retry_interval 1
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT rabbit_max_retries 0
+ openstack-config --set /etc/neutron/neutron.conf DEFAULT kombu_ssl_version SSLv23

Hitting this when starting neutron:

http://paste.openstack.org/show/177362/

2015-02-18 21:46:03.628 31709 ERROR neutron.service [-] Unrecoverable error: please check log for details.
2015-02-18 21:46:03.628 31709 TRACE neutron.service Traceback (most recent call last):
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 103, in serve_wsgi
2015-02-18 21:46:03.628 31709 TRACE neutron.service service.start()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 74, in start
2015-02-18 21:46:03.628 31709 TRACE neutron.service self.wsgi_app = _run_wsgi(self.app_name)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/service.py", line 169, in _run_wsgi
2015-02-18 21:46:03.628 31709 TRACE neutron.service app = config.load_paste_app(app_name)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/common/config.py", line 192, in load_paste_app
2015-02-18 21:46:03.628 31709 TRACE neutron.service app = deploy.loadapp("config:%s" % config_path, name=app_name)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
2015-02-18 21:46:03.628 31709 TRACE neutron.service return loadobj(APP, uri, name=name, **kw)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
2015-02-18 21:46:03.628 31709 TRACE neutron.service return context.create()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-02-18 21:46:03.628 31709 TRACE neutron.service return self.object_type.invoke(self)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-02-18 21:46:03.628 31709 TRACE neutron.service **context.local_conf)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-02-18 21:46:03.628 31709 TRACE neutron.service val = callable(*args, **kw)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/urlmap.py", line 25, in urlmap_factory
2015-02-18 21:46:03.628 31709 TRACE neutron.service app = loader.get_app(app_name, global_conf=global_conf)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2015-02-18 21:46:03.628 31709 TRACE neutron.service name=name, global_conf=global_conf).create()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-02-18 21:46:03.628 31709 TRACE neutron.service return self.object_type.invoke(self)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-02-18 21:46:03.628 31709 TRACE neutron.service **context.local_conf)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-02-18 21:46:03.628 31709 TRACE neutron.service val = callable(*args, **kw)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/auth.py", line 71, in pipeline_factory
2015-02-18 21:46:03.628 31709 TRACE neutron.service app = loader.get_app(pipeline[-1])
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2015-02-18 21:46:03.628 31709 TRACE neutron.service name=name, global_conf=global_conf).create()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-02-18 21:46:03.628 31709 TRACE neutron.service return self.object_type.invoke(self)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke
2015-02-18 21:46:03.628 31709 TRACE neutron.service return fix_call(context.object, context.global_conf, **context.local_conf)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-02-18 21:46:03.628 31709 TRACE neutron.service val = callable(*args, **kw)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 70, in factory
2015-02-18 21:46:03.628 31709 TRACE neutron.service return cls(**local_config)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/api/v2/router.py", line 74, in __init__
2015-02-18 21:46:03.628 31709 TRACE neutron.service plugin = manager.NeutronManager.get_plugin()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 222, in get_plugin
2015-02-18 21:46:03.628 31709 TRACE neutron.service return weakref.proxy(cls.get_instance().plugin)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 216, in get_instance
2015-02-18 21:46:03.628 31709 TRACE neutron.service cls._create_instance()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 431, in inner
2015-02-18 21:46:03.628 31709 TRACE neutron.service return f(*args, **kwargs)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 202, in _create_instance
2015-02-18 21:46:03.628 31709 TRACE neutron.service cls._instance = cls()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 128, in __init__
2015-02-18 21:46:03.628 31709 TRACE neutron.service self._load_service_plugins()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 175, in _load_service_plugins
2015-02-18 21:46:03.628 31709 TRACE neutron.service provider)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/manager.py", line 143, in _get_plugin_instance
2015-02-18 21:46:03.628 31709 TRACE neutron.service return plugin_class()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/services/l3_router/l3_router_plugin.py", line 54, in __init__
2015-02-18 21:46:03.628 31709 TRACE neutron.service self.setup_rpc()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/services/l3_router/l3_router_plugin.py", line 69, in setup_rpc
2015-02-18 21:46:03.628 31709 TRACE neutron.service self.conn.consume_in_threads()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/neutron/common/rpc.py", line 195, in consume_in_threads
2015-02-18 21:46:03.628 31709 TRACE neutron.service server.start()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/server.py", line 116, in start
2015-02-18 21:46:03.628 31709 TRACE neutron.service listener = self.dispatcher._listen(self.transport)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 110, in _listen
2015-02-18 21:46:03.628 31709 TRACE neutron.service return transport._listen(self._target)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/transport.py", line 104, in _listen
2015-02-18 21:46:03.628 31709 TRACE neutron.service return self._driver.listen(target)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 424, in listen
2015-02-18 21:46:03.628 31709 TRACE neutron.service conn = self._get_connection(pooled=False)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 341, in _get_connection
2015-02-18 21:46:03.628 31709 TRACE neutron.service pooled=pooled)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqp.py", line 96, in __init__
2015-02-18 21:46:03.628 31709 TRACE neutron.service self.connection = connection_pool.create()
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqp.py", line 69, in create
2015-02-18 21:46:03.628 31709 TRACE neutron.service return self.connection_cls(self.conf, self.url)
2015-02-18 21:46:03.628 31709 TRACE neutron.service File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/impl_rabbit.py", line 457, in __init__
2015-02-18 21:46:03.628 31709 TRACE neutron.service self._login_method = self.driver_conf.rabbit_login_method
2015-02-18 21:46:03.628 31709 TRACE neutron.service AttributeError: 'Connection' object has no attribute 'driver_conf'
2015-02-18 21:46:03.628 31709 TRACE neutron.service

Revision history for this message
Matt Riedemann (mriedem) wrote :

FWIW, my neutron server code is at commit a3ab3eb276ef9a5927efa748337bd699086b1623.

Revision history for this message
Matt Riedemann (mriedem) wrote :
Revision history for this message
Doug Hellmann (doug-hellmann) wrote :

So the bug appears in a patched version of oslo.messaging? Not the released version and not master?

Changed in oslo.messaging:
status: New → Incomplete
Revision history for this message
Matt Riedemann (mriedem) wrote :

@Doug, yeah, it's an rpm built with the 1.6.0 source tar.gz from pypi:

https://pypi.python.org/packages/source/o/oslo.messaging/oslo.messaging-1.6.0.tar.gz#md5=37a2965a972ec4587deb020534799a85

With this patched in the rpmbuild:

https://github.com/openstack/oslo.messaging/commit/68cd8cfecc12a40b61a7b8557aad7b5a4e1f1c6d

That was needed so we could use rabbit with SSL which was busted in 1.6.0 and not yet in a released oslo.messaging version like 1.6.1 or something.

Revision history for this message
Matt Riedemann (mriedem) wrote :

This is invalid.

The 1.6.0 source doesn't have driver_conf variables. The patch:

https://github.com/openstack/oslo.messaging/commit/68cd8cfecc12a40b61a7b8557aad7b5a4e1f1c6d

Uses driver_conf, but that wasn't added until:

https://github.com/openstack/oslo.messaging/commit/824313ac9c8d1d7095cfa2cc348da24c1052c591

So the rpm is missing a dependent change. This is why unit tests need to be run on cherry picks to tagged versions...

Changed in oslo.messaging:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.