rpc_backend shouldn't be defined when "configure a compute node"

Bug #1320451 reported by hegaofeng
22
This bug affects 5 people
Affects Status Importance Assigned to Milestone
openstack-manuals
Invalid
Undecided
Unassigned

Bug Description

I follew the 3-node deployment case from OpenStack Installation Guide for Ubuntu 12.04/14.04 (LTS) - icehouse step by step
but when i came to the step "Configure a compute node" in chapter "6. Configure Compute services"
always result in a error log in /var/log/nova/nova-compute.log when I try to start the nova-compute service

2014-05-17 16:35:38.417 CRITICAL nova [req-31498a42-162d-4f3b-b731-6df3a21706cc None None] No module named rabbit
2014-05-17 16:35:38.417 24972 TRACE nova Traceback (most recent call last):
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/bin/nova-compute", line 83, in <module>
2014-05-17 16:35:38.417 24972 TRACE nova db_allowed=False)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 534, in create
2014-05-17 16:35:38.417 24972 TRACE nova db_allowed=db_allowed)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 422, in __init__
2014-05-17 16:35:38.417 24972 TRACE nova self.conductor_api.wait_until_ready(context.get_admin_context())
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/conductor/api.py", line 379, in wait_until_ready
2014-05-17 16:35:38.417 24972 TRACE nova self.ping(context, '1.21 GigaWatts', timeout=timeout)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/conductor/api.py", line 387, in ping
2014-05-17 16:35:38.417 24972 TRACE nova return self.conductor_rpcapi.ping(context, arg, timeout)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/conductor/rpcapi.py", line 102, in ping
2014-05-17 16:35:38.417 24972 TRACE nova return self.call(context, msg, version='1.22', timeout=timeout)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/proxy.py", line 80, in call
2014-05-17 16:35:38.417 24972 TRACE nova return rpc.call(context, self._get_topic(topic), msg, timeout)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/__init__.py", line 140, in call
2014-05-17 16:35:38.417 24972 TRACE nova return _get_impl().call(CONF, context, topic, msg, timeout)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/__init__.py", line 306, in _get_impl
2014-05-17 16:35:38.417 24972 TRACE nova _RPCIMPL = importutils.import_module(impl)
2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/importutils.py", line 58, in import_module
2014-05-17 16:35:38.417 24972 TRACE nova __import__(import_str)
2014-05-17 16:35:38.417 24972 TRACE nova ImportError: No module named rabbit
2014-05-17 16:35:38.417 24972 TRACE nova

i think this is caused by "rabbit"( ImportError: No module named rabbit)
then i check the nova.conf, configured it as the manual says (add a line: rpc_backend = rabbit) in section
"
    4. Configure the Compute service to use the RabbitMQ message broker by setting these configuration keys in the [DEFAULT] configuration group of the /etc/nova/nova.conf file:
"
I try to change the "rabbit" to "smallrabbit" in nova.conf, then the error is complaining about "smallrabbit"
after hours searching... i remove the line: rpc_backend = rabbit, then start the service, it successes

i suppose:
rabbitmq-server is installed only on controller node, not compute node, so it(compute node) does not have a rpc_backend module locally but just using rabbit_host, password to communicate with the server(controller).

-----------------------------------
Built: 2014-05-16T20:16:29 00:00
git SHA: ae7c492f520f4dbe171a30c9f621827bbf39addf
URL: http://docs.openstack.org/trunk/install-guide/install/apt/content/nova-controller.html
source File: file:/home/jenkins/workspace/openstack-manuals-tox-doc-publishdocs/doc/install-guide/section_nova-controller.xml
xml:id: nova-controller

Revision history for this message
Matt Kassawara (ionosphere80) wrote :

I cannot validate your problem on any of my environments. Nova uses the "rpc_backend" key on all nodes to determine the RPC backend and then reads the associated keys for it. What version of nova did you install?

Changed in openstack-manuals:
status: New → Incomplete
Revision history for this message
Vikrant Pawar (vicky-pawar) wrote :

I did face exactly same issue, Initially I was looking for rabbitmq client however there is no such client.

Once I removed "rpc_backend = rabbit" It moved on.

I'm on Ubuntu 12.04 with Havana

Revision history for this message
Tom Fifield (fifieldt) wrote :

This problem appears to be cause by using Juno installation documentation with older versions of OpenStack. If you are installing an older version of OpenStack, please refer to the installation documentation for your version. eg http://docs.openstack.org/havana/

Revision history for this message
hegaofeng (hgfeaon) wrote :

very strange, I did encounter the problem, but after some other services components added, i can not reproduce the case(both in IceHouse)

http://docs.openstack.org/icehouse/config-reference/content/configuring-rpc.html

the document list above mentioned that(in the section Configure RabbitMQ) :

"OpenStack Oslo RPC uses RabbitMQ by default. Use these options to configure the RabbitMQ message system. The rpc_backend option is not required as long as RabbitMQ is the default messaging system. However, if it is included the configuration, you must set it to nova.openstack.common.rpc.impl_kombu."

but then at the bottom of the document (in the section Configure messaging), it points out that rpc_backend should be set to rabbit again!

through the compute service could run very well now, the configuration still confuse me

any way, thanks

Revision history for this message
Tom Fifield (fifieldt) wrote :

Very glad things are working now :)

Changed in openstack-manuals:
status: Incomplete → Invalid
Revision history for this message
Ibanez (ibanez) wrote :

Same problem.

I'm Ubuntu 14.04 with Juno.

I've removed "rpc_backend = rabbit" from /etc/neutron/neutron.conf and network node runs.

Revision history for this message
hegaofeng (hgfeaon) wrote : Re: [Bug 1320451] Re: rpc_backend shouldn't be defined when "configure acompute node"
Download full text (6.2 KiB)

I have read some source code of oslo.messaging(RPC based on AMQP) & oslo.config & nova, config is a global variable shared by nova and the other modules it used(like the messaging). nova & neutron have default/value-mapping(mapping a short config module value to a full module name) param value for the rpc_backend used by messaging module. I guess the problem caused by
in nova rpc_backend=rabbit in mapping to rpc_back=some_namespace_a.rabbit
in neutron is default value: rpc_backend = some_namespace_b.rabbit(only this module does the neutron installed, not some_namespace_a.rabbit‍), but if we explicitly set the value to rabbit and neutron do the mapping to value some_namespace_a.rabbit, then the problem came

so the problem may happen only on situation that the node network node deployed and controller node deployed are not the same machine. if we install neutron & nova on the same node, and explicitly set the rpc_backend=rabbit, neutron mapping it to ‍some_namespace_a.rabbit, it also works. because nova also installed, the module some_namespace_a.rabbit‍ does exist.

in most develop environment, all things are just in one node, so the problem will not impact the normal using and also seems the bug report is invalid.

------------------

 hgfeaon
 we could be better
 Mobile:+86 13732239580

------------------ Original ------------------
From: "Ibanez";<email address hidden>;
Date: Fri, Nov 14, 2014 03:53 AM
To: "卖程序的小歪"<email address hidden>;

Subject: [Bug 1320451] Re: rpc_backend shouldn't be defined when "configure acompute node"

Same problem.

I'm Ubuntu 14.04 with Juno.

I've removed "rpc_backend = rabbit" from /etc/neutron/neutron.conf and
network node runs.

--
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1320451

Title:
  rpc_backend shouldn't be defined when "configure a compute node"

Status in OpenStack Manuals:
  Invalid

Bug description:
  I follew the 3-node deployment case from OpenStack Installation Guide for Ubuntu 12.04/14.04 (LTS) - icehouse step by step
  but when i came to the step "Configure a compute node" in chapter "6. Configure Compute services"
  always result in a error log in /var/log/nova/nova-compute.log when I try to start the nova-compute service

  2014-05-17 16:35:38.417 CRITICAL nova [req-31498a42-162d-4f3b-b731-6df3a21706cc None None] No module named rabbit
  2014-05-17 16:35:38.417 24972 TRACE nova Traceback (most recent call last):
  2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/bin/nova-compute", line 83, in <module>
  2014-05-17 16:35:38.417 24972 TRACE nova db_allowed=False)
  2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 534, in create
  2014-05-17 16:35:38.417 24972 TRACE nova db_allowed=db_allowed)
  2014-05-17 16:35:38.417 24972 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 422, in __init__
  2014-05-17 16:35:38.417 24972 TRACE nova self.conductor_api.wait_until_ready(context.get_admin_context())
  2014-05-17 16:35:38.417 24972 TRACE...

Read more...

Revision history for this message
Wu Hong Guang (whg) wrote :

neutron juno has this problem and removed "rpc_backend = rabbit" It moved on

Revision history for this message
rmrf (rmrfus) wrote :

Confirmed:

rpc_backend=rabbit causes problems on compute nodes
After removal it still uses rabbit backend.

Revision history for this message
ad (a-beumer) wrote :

I can confirm it as well.

OpenStack Installation Guide for Ubuntu 14.04 - juno - jan 20, 2015 - page 67 / 72

Following the guide to the letter: no output from 'neutron agent-list' on controller
after removing the line 'rpc_backend = rabbit' (and restarting a few services) everything worked fine

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.