Launch instance got libvirtError for qemu unsupported IDE bus in AARCH64

Bug #1585893 reported by Kevin Zhao
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Low
Kevin Zhao

Bug Description

Description
===========
After setup the nova development environment with devstack in aarch64 machine ,use the glance upload the image ,then use nova to launch the instance.Launching failed with the error "libvirtError: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type".

Steps to reproduce
==================
1.Using devstack to deploy openstack. Using default local.conf.

2.Upload the aarch64 image with glance.
$ source ~/devstack/openrc admin admin
$ glance image-create --name image-arm64.img --disk-format qcow2 --container-format bare --visibility public --file images/image-arm64-wily.qcow2 --progress
$ glance image-create --name image-arm64.vmlinuz --disk-format aki --container-format aki --visibility public --file images/image-arm64-wily.vmlinuz --progress
$ glance image-create --name image-arm64.initrd --disk-format ari --container-format ari --visibility public --file images/image-arm64-wily.initrd --progress
$ IMAGE_UUID=$(glance image-list | grep image-arm64.img | awk '{ print $2 }')
$ IMAGE_KERNEL_UUID=$(glance image-list | grep image-arm64.vmlinuz | awk '{ print $2 }')
$ IMAGE_INITRD_UUID=$(glance image-list | grep image-arm64.initrd | awk '{ print $2 }')
$ glance image-update --kernel-id ${IMAGE_KERNEL_UUID} --ramdisk-id ${IMAGE_INITRD_UUID} ${IMAGE_UUID}

3.nova add keypair
$ nova keypair-add default --pub-key ~/.ssh/id_rsa.pub

4.Launch the instance:
$ image=$(nova image-list | egrep "image-arm64.img"'[^-]' | awk '{ print $2 }')
$ nova boot --flavor m1.medium --image ${image} --key-name default test-arm64

5.screen -x and select the n-cpu session to see the output.
Then will got the error.

Expected result
===============
After spawningn the instance, use :
$ nova list
We can see the instance is active.

Actual result
=============
Got the error:
libvirtError: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type

We can see the detailed information:
 ERROR nova.compute.manager [req-75325207-6c1b-481d-b188-a66c0a64eb89 admin admin] [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] Instance failed to spawn
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] Traceback (most recent call last):
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/compute/manager.py", line 2041, in _build_resources
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] yield resources
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/compute/manager.py", line 1887, in _build_and_run_instance
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] block_device_info=block_device_info)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2569, in spawn
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] block_device_info=block_device_info)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4713, in _create_domain_and_network
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] xml, pause=pause, power_on=power_on)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4644, in _create_domain
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] guest.launch(pause=pause)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/virt/libvirt/guest.py", line 142, in launch
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] self._encoded_xml, errors='ignore')
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 221, in __exit__
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] self.force_reraise()
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 197, in force_reraise
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] six.reraise(self.type_, self.value, self.tb)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/opt/stack/nova/nova/virt/libvirt/guest.py", line 137, in launch
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] return self._domain.createWithFlags(flags)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 186, in doit
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] result = proxy_call(self._autowrap, f, *args, **kwargs)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 144, in proxy_call
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] rv = execute(f, *args, **kwargs)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 125, in execute
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] six.reraise(c, e, tb)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 83, in tworker
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] rv = meth(*args, **kwargs)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] File "/usr/local/lib/python2.7/dist-packages/libvirt.py", line 1065, in createWithFlags
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] libvirtError: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type
 TRACE nova.compute.manager [instance: 188aa5bc-173c-46ec-b872-6bacb512911e]
 INFO nova.compute.manager [req-75325207-6c1b-481d-b188-a66c0a64eb89 admin admin] [instance: 188aa5bc-173c-46ec-b872-6bacb512911e] Terminating instance

Environment
===========
1. Exact version of OpenStack you are running. See the following
  list for all releases: http://docs.openstack.org/releases/
   Nova development, commit code: 9a05d38f48ef0f630c5e49e332075b273cee38b9

2. Which hypervisor did you use?
    Libvirt+KVM
    $ kvm --version
    QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.1), Copyright (c) 2003-2008 Fabrice Bellard
    $ libvirtd --version
    libvirtd (libvirt) 1.3.1

2. Which storage type did you use?
   In the host file system,all in one physics machine.q
stack@u202154:/opt/stack/nova$ df -hl
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 61M 1.6G 4% /run
/dev/sda2 917G 41G 830G 5% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 511M 888K 511M 1% /boot/efi
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 1.6G 0 1.6G 0% /run/user/1002
tmpfs 1.6G 0 1.6G 0% /run/user/1000
tmpfs 1.6G 0 1.6G 0% /run/user/0

3. Which networking type did you use?
   nova-network

4. Environment information:
   Architecture : AARCH64
   OS: Ubuntu 16.04

Detailed log info is in the accessory.
The guest xml is also in the log info.

Tags: aarch64
Revision history for this message
Kevin Zhao (kevin-zhao) wrote :
Changed in nova:
assignee: nobody → Kevin Zhao (kevin-zhao)
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/323244

Kevin Zhao (kevin-zhao)
Changed in nova:
status: New → Confirmed
status: Confirmed → New
Sean Dague (sdague)
Changed in nova:
status: New → Confirmed
status: Confirmed → In Progress
importance: Undecided → Low
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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

commit 36998c05d5b3c23a6b35bd0620d8a0f5f7e5d80c
Author: Kevin Zhao <email address hidden>
Date: Tue May 31 02:54:40 2016 +0000

    Specify the default cdrom type "scsi" for AARCH64.

    In AARCH64,ide is not the proper type for cdrom device just like
    in x86_64.So change this to scsi in case of qemu error. Also add
    a test for this.

    Close-Bug: #1585893

    Change-Id: Ia1cfde9f96fa54de0b352a7e6e903898b1eb7476
    Signed-off-by: Kevin Zhao <email address hidden>

Kevin Zhao (kevin-zhao)
Changed in nova:
status: In Progress → Fix Committed
Revision history for this message
Augustina Ragwitz (auggy) wrote :

Since the Mitaka cycle we use the direct release model, which means this should be Fix Released.

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

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/387659

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (stable/mitaka)

Change abandoned by Dirk Mueller (<email address hidden>) on branch: stable/mitaka
Review: https://review.openstack.org/387659

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

Other bug subscribers

Remote bug watches

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