[multimode setup] - nova-network and nova-volume fail to start due to "Could not parse rfc1738 URL"

Bug #1142782 reported by Martin Klepac
24
This bug affects 5 people
Affects Status Importance Assigned to Milestone
devstack
Invalid
Undecided
Robbie Harwood

Bug Description

Hi,

I installed OpenStack using DevStack multi-mode setup. I disabled nova-compute on the cluster controller so that instances are run on a different server. The compute node however fails to run nova-network and nova-volume. When trying to run /opt/stack/nova/bin/nova-network manually, the following error occurs: "Could not parse rfc1738 URL from string '%s'"

The full error log: http://pastebin.com/fTfJAc0m

Localrc configuration on the cluster controller:
HOST_IP=46.255.228.203
PUBLIC_INTERFACE=eth1
FLAT_INTERFACE=eth1
FIXED_RANGE=10.0.0.0/8
FIXED_NETWORK_SIZE=256
FLOATING_RANGE=46.255.228.240/28
MULTI_HOST=1
ADMIN_PASSWORD=pass
MYSQL_PASSWORD=pass
RABBIT_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=012345SECRET99TOKEN012345
LOGFILE=/var/log/stack.sh.log
SWIFT_HASH=pass

Localrc configuration on the compute node:
HOST_IP=46.255.228.208
FLAT_INTERFACE=eth1
FIXED_RANGE=10.0.0.0/8
FIXED_NETWORK_SIZE=256
FLOATING_RANGE=46.255.228.240/28
MULTI_HOST=1
ADMIN_PASSWORD=pass
MYSQL_PASSWORD=pass
RABBIT_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=012345SECRET99TOKEN012345
SERVICE_HOST=46.255.228.203
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,n-novnc,n-xvnc

nova-manage service list on the cluster controller:
Binary Host Zone Status State Updated_At
nova-conductor cold203 internal enabled :-) 2013-03-03 20:28:08
nova-compute cold203 nova enabled :-) 2013-03-03 20:28:06
nova-cert cold203 internal enabled :-) 2013-03-03 20:28:08
nova-network cold203 internal enabled :-) 2013-03-03 20:28:08
nova-scheduler cold203 internal enabled :-) 2013-03-03 20:28:08
nova-consoleauth cold203 internal enabled :-) 2013-03-03 20:28:05
nova-compute cold208 nova enabled XXX 2013-03-03 20:11:25

Regards,
Martin

Revision history for this message
Edgar Magana (emagana) wrote :

Hi There,

I see the same problem in a multi-host when I try to run nova-consoleauth:
/opt/stack/nova/bin/nova-consoleauth

log:
connection_dict = sqlalchemy.engine.url.make_url(sql_connection)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/url.py", line 178, in make_url
    return _parse_rfc1738_args(name_or_url)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/url.py", line 219, in _parse_rfc1738_args
    "Could not parse rfc1738 URL from string '%s'" % name)
ArgumentError: Could not parse rfc1738 URL from string ''
2013-03-07 18:58:55.898 CRITICAL nova [-] Could not parse rfc1738 URL from string ''

Revision history for this message
Kravchenko Pavel (kravchenko-pavel) wrote :

Hi there,

check your nova.conf for an empty 'sql_connection='
Didn't investigate the source of problem yet, but as workaround you can put there correct link e.g. sql_connection=mysql://root:password@192.168.1.10/nova?charset=utf8
then restart the service.

Revision history for this message
Senhua Huang (senhuang) wrote :

The same thing happens to the /etc/cinder/cinder.conf (sql_connection is empty).

Revision history for this message
David Martín González (david-martin-ext) wrote :

I am trying the same kind of installation (a controller node and a compute note) and I'm having the same issue. I noticed that the file /opt/stack/nova/etc/nova/nova.conf had all of its lines commented out (they started by #). I tried removing the # in front of sql_connection first, and then tried the workaround proposed by Kravchenko Pavel two messages above mine, with my MySQL server's password and IP. None seems to work.

I also remember that there was some activity in the MySQL server log when I first identified the problem, but it might have been from other services, not nova-network.

Revision history for this message
David Martín González (david-martin-ext) wrote :

After writing the previous message, I realized that the nova.conf file which I had to use was actually /etc/nova/nova.conf. However, every time that I edited it and ran stack.sh, the sql_connection variable went empty again and again.

Revision history for this message
Abu Shohel Ahmed (shohel-csdu) wrote :

For me, manually setting the sql_connection parameter solves the above problem both for nova-network and cinder.

Revision history for this message
Matthieu Huin (mhu-s) wrote :

if you are overriding the enabled_services parameter with localrc, you must explicitly specify mysql as a service to install, and add it to your list:

ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,n-novnc,n-xvnc,mysql

I had the same problem as you had and it fixed it for me.

Revision history for this message
Mike Frisch (mfrisch) wrote :

This is a multi-host installation. You do not need nor want mysql running on both the compute node(s) and the controller node.

I believe the correct solution is to add "DATABASE_TYPE=mysql" to the localrc on the compute node(s).

Revision history for this message
Robbie Harwood (rharwood) wrote :

As per comments by Matthieu Huin and Mike Frisch conformed by my own experience, I am closing this bug. Please reopen if what they said does not work for you.

Changed in devstack:
assignee: nobody → Robbie Harwood (rharwood)
status: New → 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.