← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1746483] [NEW] Not able to boot from Volume / Volume snapshot when using isolated_images

 

Public bug reported:

Description
===========

When using isolated_images, isolated_hosts and restrict_isolated_hosts_to_isolated_images=true
I'm not able to create running instance with volume/volume snapshot as a source.

Instance goes to ERROR state with reason: 
Failed to compute_task_build_instances: Cannot load 'id' in the base class

Steps to reproduce
==================

1. Set below options in nova.conf:

isolated_images = <id_of_one_of_images>
isolated_hosts = <one_dedicated_compute>
restrict_isolated_hosts_to_isolated_images=true

and append filter 'IsolatedHostsFilter' to the `enabled_filters`
setting.

2. Apply configs & restart nova services

Now tests: 
1. Create empty volume
2. Set bootable flag
3. Launch as instance
4. Created instance is in ERROR state.

Second test:
1. Create instance from image
2. create instance snapshot
3. Go to volume snapshots
4. Create as instance
5. Created instance is in ERROR state.


Actual results
================
Not working

Expected results
==================
Working as usual


Environment
==============
Ocata @ ubuntu xenial, Ceph-backed storage

Packages & versions: 
ii  nova-api                            2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - API frontend
ii  nova-common                         2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - common files
ii  nova-conductor                      2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - conductor service
ii  nova-consoleauth                    2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - Console Authenticator
ii  nova-novncproxy                     2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - NoVNC proxy
ii  nova-placement-api                  2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - placement API frontend
ii  nova-scheduler                      2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - virtual machine scheduler
ii  python-nova                         2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute Python libraries
ii  python-novaclient                   2:7.1.0-0ubuntu1~cloud0                    all          client library for OpenStack Compute API - Python 2.7


Logs
===========

Traceback (most recent call last):#012#012  File "/usr/lib/python2.7
/dist-packages/oslo_messaging/rpc/server.py", line 155, in
_process_incoming#012    res = self.dispatcher.dispatch(message)#012#012
File "/usr/lib/python2.7/dist-
packages/oslo_messaging/rpc/dispatcher.py", line 222, in dispatch#012
return self._do_dispatch(endpoint, method, ctxt, args)#012#012  File
"/usr/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py",
line 192, in _do_dispatch#012    result = func(ctxt, **new_args)#012#012
File "/usr/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py",
line 218, in inner#012    return func(*args, **kwargs)#012#012  File
"/usr/lib/python2.7/dist-packages/nova/scheduler/manager.py", line 98,
in select_destinations#012    dests =
self.driver.select_destinations(ctxt, spec_obj)#012#012  File
"/usr/lib/python2.7/dist-packages/nova/scheduler/filter_scheduler.py",
line 58, in select_destinations#012    selected_hosts =
self._schedule(context, spec_obj)#012#012  File "/usr/lib/python2.7
/dist-packages/nova/scheduler/filter_scheduler.py", line 110, in
_schedule#012    spec_obj, index=num)#012#012  File "/usr/lib/python2.7
/dist-packages/nova/scheduler/host_manager.py", line 572, in
get_filtered_hosts#012    hosts, spec_obj, index)#012#012  File
"/usr/lib/python2.7/dist-packages/nova/filters.py", line 89, in
get_filtered_objects#012    list_objs = list(objs)#012#012  File
"/usr/lib/python2.7/dist-packages/nova/filters.py", line 44, in
filter_all#012    if self._filter_one(obj, spec_obj):#012#012  File
"/usr/lib/python2.7/dist-packages/nova/scheduler/filters/__init__.py",
line 26, in _filter_one#012    return self.host_passes(obj,
filter_properties)#012#012  File "/usr/lib/python2.7/dist-
packages/nova/scheduler/filters/isolated_hosts_filter.py", line 60, in
host_passes#012    image_ref = spec_obj.image.id if spec_obj.image else
None#012#012  File "/usr/lib/python2.7/dist-
packages/oslo_versionedobjects/base.py", line 67, in getter#012
self.obj_load_attr(name)#012#012  File "/usr/lib/python2.7/dist-
packages/oslo_versionedobjects/base.py", line 603, in obj_load_attr#012
_("Cannot load '%s' in the base class") %
attrname)#012#012NotImplementedError: Cannot load 'id' in the base class

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: isolated-images nova snapshot

-- 
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/1746483

Title:
  Not able to boot from Volume / Volume snapshot when using
  isolated_images

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========

  When using isolated_images, isolated_hosts and restrict_isolated_hosts_to_isolated_images=true
  I'm not able to create running instance with volume/volume snapshot as a source.

  Instance goes to ERROR state with reason: 
  Failed to compute_task_build_instances: Cannot load 'id' in the base class

  Steps to reproduce
  ==================

  1. Set below options in nova.conf:

  isolated_images = <id_of_one_of_images>
  isolated_hosts = <one_dedicated_compute>
  restrict_isolated_hosts_to_isolated_images=true

  and append filter 'IsolatedHostsFilter' to the `enabled_filters`
  setting.

  2. Apply configs & restart nova services

  Now tests: 
  1. Create empty volume
  2. Set bootable flag
  3. Launch as instance
  4. Created instance is in ERROR state.

  Second test:
  1. Create instance from image
  2. create instance snapshot
  3. Go to volume snapshots
  4. Create as instance
  5. Created instance is in ERROR state.

  
  Actual results
  ================
  Not working

  Expected results
  ==================
  Working as usual

  
  Environment
  ==============
  Ocata @ ubuntu xenial, Ceph-backed storage

  Packages & versions: 
  ii  nova-api                            2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - API frontend
  ii  nova-common                         2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - common files
  ii  nova-conductor                      2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - conductor service
  ii  nova-consoleauth                    2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - Console Authenticator
  ii  nova-novncproxy                     2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - NoVNC proxy
  ii  nova-placement-api                  2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - placement API frontend
  ii  nova-scheduler                      2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute - virtual machine scheduler
  ii  python-nova                         2:15.0.1-0ubuntu1~cloud0                   all          OpenStack Compute Python libraries
  ii  python-novaclient                   2:7.1.0-0ubuntu1~cloud0                    all          client library for OpenStack Compute API - Python 2.7

  
  Logs
  ===========

  Traceback (most recent call last):#012#012  File "/usr/lib/python2.7
  /dist-packages/oslo_messaging/rpc/server.py", line 155, in
  _process_incoming#012    res =
  self.dispatcher.dispatch(message)#012#012  File "/usr/lib/python2.7
  /dist-packages/oslo_messaging/rpc/dispatcher.py", line 222, in
  dispatch#012    return self._do_dispatch(endpoint, method, ctxt,
  args)#012#012  File "/usr/lib/python2.7/dist-
  packages/oslo_messaging/rpc/dispatcher.py", line 192, in
  _do_dispatch#012    result = func(ctxt, **new_args)#012#012  File
  "/usr/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line
  218, in inner#012    return func(*args, **kwargs)#012#012  File
  "/usr/lib/python2.7/dist-packages/nova/scheduler/manager.py", line 98,
  in select_destinations#012    dests =
  self.driver.select_destinations(ctxt, spec_obj)#012#012  File
  "/usr/lib/python2.7/dist-packages/nova/scheduler/filter_scheduler.py",
  line 58, in select_destinations#012    selected_hosts =
  self._schedule(context, spec_obj)#012#012  File "/usr/lib/python2.7
  /dist-packages/nova/scheduler/filter_scheduler.py", line 110, in
  _schedule#012    spec_obj, index=num)#012#012  File
  "/usr/lib/python2.7/dist-packages/nova/scheduler/host_manager.py",
  line 572, in get_filtered_hosts#012    hosts, spec_obj, index)#012#012
  File "/usr/lib/python2.7/dist-packages/nova/filters.py", line 89, in
  get_filtered_objects#012    list_objs = list(objs)#012#012  File
  "/usr/lib/python2.7/dist-packages/nova/filters.py", line 44, in
  filter_all#012    if self._filter_one(obj, spec_obj):#012#012  File
  "/usr/lib/python2.7/dist-packages/nova/scheduler/filters/__init__.py",
  line 26, in _filter_one#012    return self.host_passes(obj,
  filter_properties)#012#012  File "/usr/lib/python2.7/dist-
  packages/nova/scheduler/filters/isolated_hosts_filter.py", line 60, in
  host_passes#012    image_ref = spec_obj.image.id if spec_obj.image
  else None#012#012  File "/usr/lib/python2.7/dist-
  packages/oslo_versionedobjects/base.py", line 67, in getter#012
  self.obj_load_attr(name)#012#012  File "/usr/lib/python2.7/dist-
  packages/oslo_versionedobjects/base.py", line 603, in
  obj_load_attr#012    _("Cannot load '%s' in the base class") %
  attrname)#012#012NotImplementedError: Cannot load 'id' in the base
  class

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


Follow ups