libvirt evacute on ppcle failed with IDE controllers are unsupported for this QEMU binary or machine type

Bug #1511539 reported by Christine Wang
34
This bug affects 4 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Christine Wang
Liberty
Fix Released
Medium
Matt Riedemann

Bug Description

This is on a liberty release
In evacuate, the image_meta is empty. So, we would get the architecture information from host.

However, in the nova/virt/libvirt/blockinfo.py get_disk_bus_for_device_type, we didn't have the bus type default for ppcle or ppcle64. So, it ended up using IDE for cdrom or disk.

So, the evacuate would failed with

2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] rv = execute(f, *args, **kwargs)
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 122, in execute
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] six.reraise(c, e, tb)
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 80, in tworker
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] rv = meth(*args, **kwargs)
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] File "/usr/lib64/python2.7/site-packages/libvirt.py", line 996, in createWithFlags
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f] libvirtError: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type
2015-10-26 22:23:51.413 103536 ERROR nova.compute.manager [instance: 3c8f8d24-ebcf-425a-b50d-4ddc08e7b92f]

The if guestarch in (arch.PPC, arch.PPC64, arch.S390, arch.S390X): line needs to be updated to
if guestarch in (arch.PPC, arch.PPC64, arch.PPCLE, arch.PPC64LE, arch.S390, arch.S390X):

 nova/virt/libvirt/blockinfo.py get_disk_bus_for_device_type
...
    elif virt_type in ("qemu", "kvm"):
        if device_type == "cdrom":
            guestarch = libvirt_utils.get_arch(image_meta)
            if guestarch in (arch.PPC, arch.PPC64, arch.S390, arch.S390X):
                return "scsi"
            else:
                return "ide"
        elif device_type == "disk":
            return "virtio"
        elif device_type == "floppy":
            return "fdc"

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/240612

Changed in nova:
assignee: nobody → Christine Wang (ijuwang)
status: New → In Progress
Changed in nova:
assignee: Christine Wang (ijuwang) → Timothy Symanczyk (timothy-symanczyk)
Changed in nova:
assignee: Timothy Symanczyk (timothy-symanczyk) → nobody
Changed in nova:
assignee: nobody → Christine Wang (ijuwang)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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

commit 9fd7e646e73d15a50dbb6e2585b0f8761a50d636
Author: Christine Wang <email address hidden>
Date: Fri Oct 30 16:21:12 2015 -0500

    Add ppcle architectures to libvirt blockinfo

    Instance evacuate would fail on hypervisor running with PPCLE or
    PPC64LE architectures due to bus or device typewas set to IDE.
    It would failed with 'IDE controllers are unsupported' error.
    Update get_disk_bus_for_device_type to include support for PPCLE
    and PPC64LE architecture to set bus or device type to scsi.

    Closes-Bug: #1511539
    Change-Id: Id65588321b3e3429b81a0bf4a4bac3899b38008f

Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/nova 13.0.0.0b1

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

Changed in nova:
status: Fix Committed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/293550

Revision history for this message
Matt Riedemann (mriedem) wrote :
Changed in nova:
importance: Undecided → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/liberty)

Reviewed: https://review.openstack.org/293550
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=2a6c77ed6aac70c225e3e93dca1bd6197c3dbc28
Submitter: Jenkins
Branch: stable/liberty

commit 2a6c77ed6aac70c225e3e93dca1bd6197c3dbc28
Author: Christine Wang <email address hidden>
Date: Fri Oct 30 16:21:12 2015 -0500

    Add ppcle architectures to libvirt blockinfo

    Instance evacuate would fail on hypervisor running with PPCLE or
    PPC64LE architectures due to bus or device typewas set to IDE.
    It would failed with 'IDE controllers are unsupported' error.
    Update get_disk_bus_for_device_type to include support for PPCLE
    and PPC64LE architecture to set bus or device type to scsi.

    Closes-Bug: #1511539
    Change-Id: Id65588321b3e3429b81a0bf4a4bac3899b38008f
    (cherry picked from commit 9fd7e646e73d15a50dbb6e2585b0f8761a50d636)

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/nova 12.0.3

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

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.