yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #38654
[Bug 1497293] [NEW] Nova misuses qemu-img for kernel and initrd
Public bug reported:
QEMU loads -kernel and -inird arguments as binary blobs, without
processing them through its block layer - that is only done for disk
images (i.e., -drive file=...). I.e., from QEMU's perspective, all
kernels and all initrds are raw format. QEMU's modular block drivers
allow to add format support, e.g., for gzip'ed images.
When a different format is reported in place of "raw", Nova will
unnecessarily try to convert the initramfs to raw format, which will
still report the same format as before, leading to an exception being
raised.
Therefore please do not run `qemu-img info` on files that are not disk
images.
The source of the problem seems to be that the same
libvirt_utils.fetch_image function is used for disk_images['kernel_id']
and disk_images['ramdisk_id'] as for disk_images['image_id']:
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/images.py?h=stable/kilo#n131
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/utils.py?h=stable/kilo#n504
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/driver.py?h=stable/kilo#n2741
** Affects: nova
Importance: Undecided
Status: New
--
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/1497293
Title:
Nova misuses qemu-img for kernel and initrd
Status in OpenStack Compute (nova):
New
Bug description:
QEMU loads -kernel and -inird arguments as binary blobs, without
processing them through its block layer - that is only done for disk
images (i.e., -drive file=...). I.e., from QEMU's perspective, all
kernels and all initrds are raw format. QEMU's modular block drivers
allow to add format support, e.g., for gzip'ed images.
When a different format is reported in place of "raw", Nova will
unnecessarily try to convert the initramfs to raw format, which will
still report the same format as before, leading to an exception being
raised.
Therefore please do not run `qemu-img info` on files that are not disk
images.
The source of the problem seems to be that the same
libvirt_utils.fetch_image function is used for
disk_images['kernel_id'] and disk_images['ramdisk_id'] as for
disk_images['image_id']:
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/images.py?h=stable/kilo#n131
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/utils.py?h=stable/kilo#n504
https://git.openstack.org/cgit/openstack/nova/tree/nova/virt/libvirt/driver.py?h=stable/kilo#n2741
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1497293/+subscriptions
Follow ups