← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1684978] [NEW] Nova could not communicate with Glance in IPv6 environment

 

Public bug reported:

Description
===========
Hi, 
Nova could not communicate with glance in IPv6 environment.
I wanted to introduce OpenStack Mitaka to my servers (Ubuntu16.04 LTS) which have only IPv6 address.

Steps to reproduce
==================
First, I edited hosts file.

Keystone setting is fine.

controller# vim /etc/hosts
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#127.0.0.1 controller ← comment out
...
2001:200:0:XXXX::a controller  ← added (IPv6 only)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Next, go on to  Glance as following.

controller# openstack role add --project service --user glance admin
controller# openstack service create --name glance --description "OpenStack Image service" image
controller# openstack endpoint create --region RegionOne image public http://controller:9292
controller# openstack endpoint create --region RegionOne image internal http://controller:9292
controller# openstack endpoint create --region RegionOne image admin http://controller:9292

controller# vi /etc/glance/glance-api.conf

controller# vi /etc/glance/glance-registry.conf


controller# service glance-registry restart && service glance-api restart
controller# tailf /var/log/glance/glance-api.log           ←
controller# tailf /var/log/glance/glance-registry.log   ← both files have no error log
controller# rm /var/lib/glance/glance.sqlite

Get OS image and register it to Glance
controller# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
controller# glance image-create --name "cirros-0.3.4-x86_64" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare  --visibility public --progress
controller# openstack image list

I checked Glance is file

Then, Nova setting...
controller# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
controller# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
controller# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s

controller# vi /etc/nova/nova.conf


controller# su -s /bin/sh -c "nova-manage api_db sync" nova
controller# su -s /bin/sh -c "nova-manage db sync" nova
controller# service nova-api restart && service nova-consoleauth restart && service nova-scheduler restart && service nova-conductor restart && service nova-novncproxy restart

↑no error happened

controller# rm /var/lib/nova/nova.sqlite
controller# nova image-list (the log file of nova-api at this command is attached)

Expected result
===============
controller# nova image-list
+--------------------------------------+---------------------+--------+--------+
| ID                                   | Name                | Status | Server |
+--------------------------------------+---------------------+--------+--------+
| 12d67808-c7d2-44b4-8bc6-b0ced1878f06 | cirros-0.3.4-x86_64 | ACTIVE |        |
+--------------------------------------+---------------------+--------+--------+

Actual result
=============
controller # nova image-list
ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'glanceclient.exc.HTTPInternalServerError'> (HTTP 500) (Request-ID: req-978e02bb-998a-4f34-bcb2-1baf9707aec1)

Environment
===========
controller ~(admin)# dpkg -l | grep nova
ii  nova-api                           2:13.1.3-0ubuntu1                          all          OpenStack Compute - API frontend
ii  nova-common                        2:13.1.3-0ubuntu1                          all          OpenStack Compute - common files
ii  nova-conductor                     2:13.1.3-0ubuntu1                          all          OpenStack Compute - conductor service
ii  nova-consoleauth                   2:13.1.3-0ubuntu1                          all          OpenStack Compute - Console Authenticator
ii  nova-novncproxy                    2:13.1.3-0ubuntu1                          all          OpenStack Compute - NoVNC proxy
ii  nova-scheduler                     2:13.1.3-0ubuntu1                          all          OpenStack Compute - virtual machine scheduler
ii  python-nova                        2:13.1.3-0ubuntu1                          all          OpenStack Compute Python libraries
ii  python-novaclient                  2:3.3.1-2ubuntu1                           all          client library for OpenStack Compute API - Python 2.7

controller ~(admin)# dpkg -l | grep glance
ii  glance                             2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Daemons
ii  glance-api                         2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - API
ii  glance-common                      2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Common
ii  glance-registry                    2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Registry
ii  glance-store-common                0.13.0-3ubuntu0.16.04.1                    all          OpenStack Image Service store library - common files
ii  python-glance                      2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Python library
ii  python-glance-store                0.13.0-3ubuntu0.16.04.1                    all          OpenStack Image Service store library - Python 2.7
ii  python-glanceclient                1:2.0.0-2ubuntu0.16.04.1                   all          Client library for Openstack glance server - Python 2.x


Logs & Configs
==============
extract related part as follows

-=-=-=-=-=  nova.conf =-=-=-=-=-=-
[DEFAULT]
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
#lock_path=/var/lock/nova     ← comment out
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
verbose=True
ec2_private_dns_show_ip=True
api_paste_config=/etc/nova/api-paste.ini
#enabled_apis=ec2,osapi_compute,metadata   ← comment out
enabled_apis = osapi_compute,metadata        ← added
rpc_backend = rabbit
auth_strategy = keystone

my_ip = 2001:200:0:XXXX::a                          ← added

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver

[vnc]
vncserver_listen = 2001:200:0:XXXX::a
vncserver_proxyclient_address = 2001:200:0:XXXX::a

[api_database]
connection = mysql+pymysql://nova:password@controller/nova_api

[database]
connection = mysql+pymysql://nova:password@controller/nova

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = password

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = password 

[glance]
api_servers = http://controller:9292

[oslo_concurrency]
lock_path = /var/lib/nova/tmp
-=-=-=-=end of nova.conf -=-=-=-=-=-=-=-=-=-


-=-=-=-=-=-=- glance-api.conf =-=-=-=-=-=-=-=-=-
...
[database]
#sqlite_db = /var/lib/glance/glance.sqlite         ← comment out
connection = mysql+pymysql://glance:password@controller/glance   ← added
...
[glance_store]
...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/  ← added
...
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = password  
...
[paste_deploy]
...
flavor = keystone 
-=-=-=-=-= end of glance-api.conf -=-=-=-=-=-=-=-=-=-=-


-=-=-=-=-=-=-=- glance-registry.conf =-=-=-=-=-=-=-=-=-=-
[DEFAULT]
...
[database]
#sqlite_db = /var/lib/glance/glance.sqlite             ← comment out
connection = mysql+pymysql://glance:password@controller/glance  ← added

[keystone_authtokey]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = password  

...
[paste_deploy]
flavor = keystone            
=-=-=-=-=-=- end of glance-registry.conf =-=-=-=-=-=-=-=-=-=-=-=-

** Affects: nova
     Importance: Undecided
         Status: New

** Attachment added: "nova-api.log"
   https://bugs.launchpad.net/bugs/1684978/+attachment/4865623/+files/nova-api.log

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1684978

Title:
  Nova could not communicate with Glance in IPv6 environment

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========
  Hi, 
  Nova could not communicate with glance in IPv6 environment.
  I wanted to introduce OpenStack Mitaka to my servers (Ubuntu16.04 LTS) which have only IPv6 address.

  Steps to reproduce
  ==================
  First, I edited hosts file.

  Keystone setting is fine.

  controller# vim /etc/hosts
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  #127.0.0.1 controller ← comment out
  ...
  2001:200:0:XXXX::a controller  ← added (IPv6 only)
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Next, go on to  Glance as following.

  controller# openstack role add --project service --user glance admin
  controller# openstack service create --name glance --description "OpenStack Image service" image
  controller# openstack endpoint create --region RegionOne image public http://controller:9292
  controller# openstack endpoint create --region RegionOne image internal http://controller:9292
  controller# openstack endpoint create --region RegionOne image admin http://controller:9292

  controller# vi /etc/glance/glance-api.conf

  controller# vi /etc/glance/glance-registry.conf

  
  controller# service glance-registry restart && service glance-api restart
  controller# tailf /var/log/glance/glance-api.log           ←
  controller# tailf /var/log/glance/glance-registry.log   ← both files have no error log
  controller# rm /var/lib/glance/glance.sqlite

  Get OS image and register it to Glance
  controller# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
  controller# glance image-create --name "cirros-0.3.4-x86_64" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare  --visibility public --progress
  controller# openstack image list

  I checked Glance is file

  Then, Nova setting...
  controller# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
  controller# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
  controller# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s

  controller# vi /etc/nova/nova.conf

  
  controller# su -s /bin/sh -c "nova-manage api_db sync" nova
  controller# su -s /bin/sh -c "nova-manage db sync" nova
  controller# service nova-api restart && service nova-consoleauth restart && service nova-scheduler restart && service nova-conductor restart && service nova-novncproxy restart

  ↑no error happened

  controller# rm /var/lib/nova/nova.sqlite
  controller# nova image-list (the log file of nova-api at this command is attached)

  Expected result
  ===============
  controller# nova image-list
  +--------------------------------------+---------------------+--------+--------+
  | ID                                   | Name                | Status | Server |
  +--------------------------------------+---------------------+--------+--------+
  | 12d67808-c7d2-44b4-8bc6-b0ced1878f06 | cirros-0.3.4-x86_64 | ACTIVE |        |
  +--------------------------------------+---------------------+--------+--------+

  Actual result
  =============
  controller # nova image-list
  ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  <class 'glanceclient.exc.HTTPInternalServerError'> (HTTP 500) (Request-ID: req-978e02bb-998a-4f34-bcb2-1baf9707aec1)

  Environment
  ===========
  controller ~(admin)# dpkg -l | grep nova
  ii  nova-api                           2:13.1.3-0ubuntu1                          all          OpenStack Compute - API frontend
  ii  nova-common                        2:13.1.3-0ubuntu1                          all          OpenStack Compute - common files
  ii  nova-conductor                     2:13.1.3-0ubuntu1                          all          OpenStack Compute - conductor service
  ii  nova-consoleauth                   2:13.1.3-0ubuntu1                          all          OpenStack Compute - Console Authenticator
  ii  nova-novncproxy                    2:13.1.3-0ubuntu1                          all          OpenStack Compute - NoVNC proxy
  ii  nova-scheduler                     2:13.1.3-0ubuntu1                          all          OpenStack Compute - virtual machine scheduler
  ii  python-nova                        2:13.1.3-0ubuntu1                          all          OpenStack Compute Python libraries
  ii  python-novaclient                  2:3.3.1-2ubuntu1                           all          client library for OpenStack Compute API - Python 2.7

  controller ~(admin)# dpkg -l | grep glance
  ii  glance                             2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Daemons
  ii  glance-api                         2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - API
  ii  glance-common                      2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Common
  ii  glance-registry                    2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Registry
  ii  glance-store-common                0.13.0-3ubuntu0.16.04.1                    all          OpenStack Image Service store library - common files
  ii  python-glance                      2:12.0.0-0ubuntu2                          all          OpenStack Image Registry and Delivery Service - Python library
  ii  python-glance-store                0.13.0-3ubuntu0.16.04.1                    all          OpenStack Image Service store library - Python 2.7
  ii  python-glanceclient                1:2.0.0-2ubuntu0.16.04.1                   all          Client library for Openstack glance server - Python 2.x

  
  Logs & Configs
  ==============
  extract related part as follows

  -=-=-=-=-=  nova.conf =-=-=-=-=-=-
  [DEFAULT]
  dhcpbridge_flagfile=/etc/nova/nova.conf
  dhcpbridge=/usr/bin/nova-dhcpbridge
  logdir=/var/log/nova
  state_path=/var/lib/nova
  #lock_path=/var/lock/nova     ← comment out
  force_dhcp_release=True
  libvirt_use_virtio_for_bridges=True
  verbose=True
  ec2_private_dns_show_ip=True
  api_paste_config=/etc/nova/api-paste.ini
  #enabled_apis=ec2,osapi_compute,metadata   ← comment out
  enabled_apis = osapi_compute,metadata        ← added
  rpc_backend = rabbit
  auth_strategy = keystone

  my_ip = 2001:200:0:XXXX::a                          ← added

  use_neutron = True

  firewall_driver = nova.virt.firewall.NoopFirewallDriver

  [vnc]
  vncserver_listen = 2001:200:0:XXXX::a
  vncserver_proxyclient_address = 2001:200:0:XXXX::a

  [api_database]
  connection = mysql+pymysql://nova:password@controller/nova_api

  [database]
  connection = mysql+pymysql://nova:password@controller/nova

  [oslo_messaging_rabbit]
  rabbit_host = controller
  rabbit_userid = openstack
  rabbit_password = password

  [keystone_authtoken]
  auth_uri = http://controller:5000
  auth_url = http://controller:35357
  memcached_servers = controller:11211
  auth_type = password
  project_domain_name = default
  user_domain_name = default
  project_name = service
  username = nova
  password = password 

  [glance]
  api_servers = http://controller:9292

  [oslo_concurrency]
  lock_path = /var/lib/nova/tmp
  -=-=-=-=end of nova.conf -=-=-=-=-=-=-=-=-=-

  
  -=-=-=-=-=-=- glance-api.conf =-=-=-=-=-=-=-=-=-
  ...
  [database]
  #sqlite_db = /var/lib/glance/glance.sqlite         ← comment out
  connection = mysql+pymysql://glance:password@controller/glance   ← added
  ...
  [glance_store]
  ...
  stores = file,http
  default_store = file
  filesystem_store_datadir = /var/lib/glance/images/  ← added
  ...
  [keystone_authtoken]
  ...
  auth_uri = http://controller:5000
  auth_url = http://controller:35357
  memcached_servers = controller:11211
  auth_type = password
  project_domain_name = default
  user_domain_name = default
  project_name = service
  username = glance
  password = password  
  ...
  [paste_deploy]
  ...
  flavor = keystone 
  -=-=-=-=-= end of glance-api.conf -=-=-=-=-=-=-=-=-=-=-

  
  -=-=-=-=-=-=-=- glance-registry.conf =-=-=-=-=-=-=-=-=-=-
  [DEFAULT]
  ...
  [database]
  #sqlite_db = /var/lib/glance/glance.sqlite             ← comment out
  connection = mysql+pymysql://glance:password@controller/glance  ← added

  [keystone_authtokey]
  ...
  auth_uri = http://controller:5000
  auth_url = http://controller:35357
  memcached_servers = controller:11211
  auth_type = password
  project_domain_name = default
  user_domain_name = default
  project_name = service
  username = glance
  password = password  

  ...
  [paste_deploy]
  flavor = keystone            
  =-=-=-=-=-=- end of glance-registry.conf =-=-=-=-=-=-=-=-=-=-=-=-

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1684978/+subscriptions


Follow ups