get_model method missing for Ploop image

Bug #1670642 reported by Evgeny Antyshev on 2017-03-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Medium
Evgeny Antyshev
Ocata
Medium
Lee Yarwood

Bug Description

This results in failures in inject_data from nova/virt/disk/api.py
even if no real data is injected:

2017-03-03 15:11:55.707 48683 ERROR nova.virt.libvirt.driver [req-f6f3df11-35b0-44c2-a1c4-52548504a1b5 fd33deabe809466a8dcd517bdf882e6b e4046b10f1074f06bd5d474ddfce09bc - - -] [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] Error injecting data into image 082f0243-cd99-4312-a27a-86b8cd3688d2 ()
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [req-f6f3df11-35b0-44c2-a1c4-52548504a1b5 fd33deabe809466a8dcd517bdf882e6b e4046b10f1074f06bd5d474ddfce09bc - - -] [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] Instance failed to spawn
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] Traceback (most recent call last):
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2078, in _build_resources
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] yield resources
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1920, in _build_and_run_instance
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] block_device_info=block_device_info)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2624, in spawn
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] admin_pass=admin_password)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3028, in _create_image
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] fallback_from_host)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3137, in _create_and_inject_local_root
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] files)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2977, in _inject_data
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] instance=instance)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] self.force_reraise()
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] six.reraise(self.type_, self.value, self.tb)
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2968, in _inject_data
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] disk_api.inject_data(injection_image.get_model(self._conn),
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/imagebackend.py", line 395, in get_model
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] raise NotImplementedError()
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5] NotImplementedError
2017-03-03 15:11:55.708 48683 ERROR nova.compute.manager [instance: 99aaeae0-e611-424e-bbd6-8d83ef37caf5]

libvirt.virt_type = parallels
libvirt.images_type = ploop
libvirt.inject_partition = -1

Changed in nova:
assignee: nobody → Evgeny Antyshev (eantyshev)
Changed in nova:
status: New → In Progress

Reviewed: https://review.openstack.org/441989
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d629d4e42c04756444a79e9ac15f3f2192c47b52
Submitter: Jenkins
Branch: master

commit d629d4e42c04756444a79e9ac15f3f2192c47b52
Author: Evgeny Antyshev <email address hidden>
Date: Mon Mar 6 14:27:06 2017 +0000

    get_model method missing for Ploop image

    Image.get_model is called in partition injection code,
    and now inject partition attempt fails unconditionally.
    This patch makes use of disk/api.py inject_data failure tolerance:
    it doesn't fail unless injected data is mandatory.

    Closes-Bug: 1670642
    Change-Id: I6c68693be818219f78d6fcda019b867066396b29

Changed in nova:
status: In Progress → Fix Released
Matt Riedemann (mriedem) on 2017-03-21
tags: added: libvirt parallels
Changed in nova:
importance: Undecided → Medium

Reviewed: https://review.openstack.org/447626
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=914aa032f2031625512e1bcebf312fe9fff4d3fa
Submitter: Jenkins
Branch: stable/ocata

commit 914aa032f2031625512e1bcebf312fe9fff4d3fa
Author: Evgeny Antyshev <email address hidden>
Date: Mon Mar 6 14:27:06 2017 +0000

    get_model method missing for Ploop image

    Image.get_model is called in partition injection code,
    and now inject partition attempt fails unconditionally.
    This patch makes use of disk/api.py inject_data failure tolerance:
    it doesn't fail unless injected data is mandatory.

    Closes-Bug: 1670642
    Change-Id: I6c68693be818219f78d6fcda019b867066396b29
    (cherry picked from commit d629d4e42c04756444a79e9ac15f3f2192c47b52)

This issue was fixed in the openstack/nova 15.0.2 release.

This issue was fixed in the openstack/nova 16.0.0.0b1 development milestone.

Reviewed: https://review.openstack.org/448142
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e289fe9eb66a4984c7bb9dc72f5aff83003fe390
Submitter: Jenkins
Branch: master

commit e289fe9eb66a4984c7bb9dc72f5aff83003fe390
Author: Matt Riedemann <email address hidden>
Date: Tue Mar 21 10:57:35 2017 -0400

    libvirt: mark some Image backend methods as abstract

    Change I6c68693be818219f78d6fcda019b867066396b29 shows us
    that we should be marking Image methods as abstract if they
    actually are required to be implemented by a subclass. Since
    the Image class itself is an ABC, let's take advantage and
    mark some of the other required methods in the base class
    as abstract methods so we don't hit this same issue again with
    a new backend.

    Change-Id: Id5129e48d1ec3b23b552b066916a968c02953988
    Related-Bug: #1670642

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers