← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1574531] [NEW] XenAPI dosen't support GPT partition table

 

Public bug reported:

Description
==========
Boot an instance with FreeBSD image using OpenStack Liberty stable release

Steps
=====
I downloaded a FreeBSD image from it's offical website and upload this image via glance.
I tried to boot an instance with this image, but it will always fail at auto config disk, see xenapi/vm_utils.py: _auto_configure_disk()

Expect:
======
Boot instance successfully

Actual:
======
Failed to boot instance

Logs
====

2016-04-20 05:04:10.043 ERROR nova.utils [req-7f9d8900-a3c4-4e9e-93dc-cd71d7263895 demo demo] [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] Failed to spawn, rolling back
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] Traceback (most recent call last):
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 570, in _spawn
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] attach_devices_step(undo_mgr, vm_ref, vdis, disk_image_type)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 129, in inner
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] rv = f(*args, **kwargs)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 503, in attach_devices_step
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] attach_disks(undo_mgr, vm_ref, vdis, disk_image_type)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 450, in attach_disks
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] admin_password, injected_files)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 748, in _attach_disks
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] flavor.root_gb)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 926, in try_auto_configure_disk
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] _auto_configure_disk(session, vdi_ref, new_gb)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 904, in _auto_configure_disk
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] partitions = _get_partitions(dev)
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 2197, in _get_partitions
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] num, start, end, size, fstype, name, flags = line.split(':')
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] ValueError: need more than 1 value to unpack
2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055]

With some additional debug loggs added, you can see:
2016-04-20 05:04:09.322 DEBUG nova.virt.xenapi.vm_utils [req-7f9d8900-a3c4-4e9e-93dc-cd71d7263895 demo demo]
Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.
Warning: Not all of the space available to /dev/xvdb appears to be used, you can fix the GPT to use all of the space (an extra 18874001 blocks) or continue with the current setting? 
BYT;
/dev/xvdb:62914560s:xvd:512:512:gpt:Xen Virtual Block Device;
1:3s:170s:168s::bootfs:;
2:171s:2097322s:2097152s::swapfs:;
3:2097323s:44040362s:41943040s:freebsd-ufs:rootfs:;

This is because XenAPI driver doesn't support GPT partition tables
currently

** 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/1574531

Title:
  XenAPI dosen't support GPT partition table

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ==========
  Boot an instance with FreeBSD image using OpenStack Liberty stable release

  Steps
  =====
  I downloaded a FreeBSD image from it's offical website and upload this image via glance.
  I tried to boot an instance with this image, but it will always fail at auto config disk, see xenapi/vm_utils.py: _auto_configure_disk()

  Expect:
  ======
  Boot instance successfully

  Actual:
  ======
  Failed to boot instance

  Logs
  ====

  2016-04-20 05:04:10.043 ERROR nova.utils [req-7f9d8900-a3c4-4e9e-93dc-cd71d7263895 demo demo] [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] Failed to spawn, rolling back
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] Traceback (most recent call last):
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 570, in _spawn
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] attach_devices_step(undo_mgr, vm_ref, vdis, disk_image_type)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 129, in inner
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] rv = f(*args, **kwargs)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 503, in attach_devices_step
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] attach_disks(undo_mgr, vm_ref, vdis, disk_image_type)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 450, in attach_disks
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] admin_password, injected_files)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vmops.py", line 748, in _attach_disks
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] flavor.root_gb)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 926, in try_auto_configure_disk
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] _auto_configure_disk(session, vdi_ref, new_gb)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 904, in _auto_configure_disk
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] partitions = _get_partitions(dev)
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 2197, in _get_partitions
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] num, start, end, size, fstype, name, flags = line.split(':')
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055] ValueError: need more than 1 value to unpack
  2016-04-20 05:04:10.043 TRACE nova.utils [instance: d970c4d0-c112-4b6e-b559-9f38e91c1055]

  With some additional debug loggs added, you can see:
  2016-04-20 05:04:09.322 DEBUG nova.virt.xenapi.vm_utils [req-7f9d8900-a3c4-4e9e-93dc-cd71d7263895 demo demo]
  Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.
  Warning: Not all of the space available to /dev/xvdb appears to be used, you can fix the GPT to use all of the space (an extra 18874001 blocks) or continue with the current setting? 
  BYT;
  /dev/xvdb:62914560s:xvd:512:512:gpt:Xen Virtual Block Device;
  1:3s:170s:168s::bootfs:;
  2:171s:2097322s:2097152s::swapfs:;
  3:2097323s:44040362s:41943040s:freebsd-ufs:rootfs:;

  This is because XenAPI driver doesn't support GPT partition tables
  currently

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