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

Bug #1142782 reported by Martin Klepac on 2013-03-03
24
This bug affects 5 people
Affects Status Importance Assigned to Milestone
devstack
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

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 ''

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.

Senhua Huang (senhuang) wrote :

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

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.

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.

Abu Shohel Ahmed (shohel-csdu) wrote :

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

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.

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).

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  Edit
Everyone can see this information.

Other bug subscribers