cannot valid stream-optimized vmdk image

Bug #2073262 reported by zhou zhong
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Cinder
New
Undecided
Unassigned
Glance
Confirmed
Low
Unassigned
OpenStack Compute (nova)
Confirmed
Low
Dan Smith

Bug Description

My vmdk image file cannot be validated, and raise "Unsupported VMDK footer". It seems that every stream-optimized VMDK image has a footer, why verify its existence?

Traceback (most recent call last):
  File "/Users/mizar/test/format_inspector.py", line 874, in <module>
    get_inspector('vmdk').from_file('/Users/mizar/Downloads/zztest-thin-1.vmdk')
  File "/Users/mizar/test/format_inspector.py", line 225, in from_file
    inspector.eat_chunk(chunk)
  File "/Users/mizar/test/format_inspector.py", line 142, in eat_chunk
    self.post_process()
  File "/Users/mizar/test/format_inspector.py", line 675, in post_process
    raise ImageFormatError('Unsupported VMDK footer')
ImageFormatError: Unsupported VMDK footer

()[root@nova-maintenance-b7f767857-8t2r2 /]# qemu-img info /opt/zztest-centos7-1.vmdk
image: /opt/zztest-centos7-manu-virtio-1.vmdk
file format: vmdk
virtual size: 16G (17179869184 bytes)
disk size: 629M
cluster_size: 65536
Format specific information:
    cid: 2728887714
    parent cid: 4294967295
    create type: streamOptimized
    extents:
        [0]:
            compressed: true
            virtual size: 17179869184
            filename: /opt/zztest-centos7-1.vmdk
            cluster size: 65536
            format:

zhou zhong (zhouzhongg)
description: updated
zhou zhong (zhouzhongg)
summary: - cannot valid vmdk image
+ cannot valid stream-optimized vmdk image
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to glance (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/glance/+/924298

Revision history for this message
Dan Smith (danms) wrote (last edit ):

It is not true that all streamOptimized VMDKs have a footer. Files created with qemu-img in that subformat do not have one. If you can provide an example VMDK that does, I can take a look at it, but the VMDK spec is very light on details about how that might even work and whether or not there can be another descriptor block beyond it.

Revision history for this message
Dan Smith (danms) wrote :

I added nova and cinder to this for visibility. I have a patch up to add footer support to the oslo version, but it's non-trivial and depends on some of the changes I've made since the version imported by the other projects.

For nova, I'm definitely suggesting that we not take action on this until we can switch to the oslo version, and because the code is doing exactly what we want, which is rejecting VMDKs with a sparse footer that we can't validate. This doesn't affect VMDKs created by qemu, and I'm not sure all the scenarios under which VMDKs created from vmware have this set. Either way, a 1:1 `qemu-img convert` of the affected files will un-footer it and make it usable. So, working as designed but lacking support for an edge case and with a valid workaround tells me this is low priority and more feature than bug.

Changed in nova:
assignee: nobody → Dan Smith (danms)
importance: Undecided → Low
status: New → Confirmed
Dan Smith (danms)
Changed in glance:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Walt Boring (walter-boring) wrote :

Do you have a copy of this vmdk file?

Revision history for this message
Dan Smith (danms) wrote :

I've scripted creating a vmdk with a footer and am working on getting all these sample images available statically. But you can clone this:

https://review.opendev.org/c/openstack/os-test-images/+/925114

Run tox, and get the images/vmdk-sparse-with-footer.vmdk file to test with if you need.

Revision history for this message
zhou zhong (zhouzhongg) wrote :

Hi Walt, you can find the image at https://we.tl/t-o1wkLvdVsl

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.