Red Hat Bugzilla – Bug 1134237
Opening malformed VMDK description file should fail
Last modified: 2015-03-05 03:11:18 EST
qemu-img currently accepts below description file: --------------8<------------------- # Disk DescriptorFile version=1 CID=58ab4847 parentCID=ffffffff createType="vmfs" # Extent description RW 12582912 VMFS "dummy.vmdk" 1 --------------8<------------------- The line: RW 12582912 VMFS "dummy.vmdk" 1 is malformed because field "1" is actually unexpected. We should report and error and refuse to open this image. Current output: $ ~/build/rhel7/qemu-img info a.vmdk image: a.vmdk file format: vmdk virtual size: 6.0G (6442450944 bytes) disk size: 4.0K Format specific information: cid: 1487620167 parent cid: 4294967295 create type: vmfs extents: [0]: virtual size: 6442450944 filename: dummy.vmdk format: VMFS Expected output: $ qemu-img info a.vmdk qemu-img: Could not open 'a.vmdk': Invalid extent lines: RW 12582912 VMFS "dummy.vmdk" 1
Fix included in qemu-kvm-1.5.3-84.el7
Reprodue this issue on qemu-kvm-1.5.3-83.el7.x86_64. host info: # uname -r && rpm -q qemu-kvm 3.10.0-219.el7.x86_64 qemu-kvm-1.5.3-83.el7.x86_64 # qemu-img create -f vmdk -o subformat=monolithicFlat a.vmdk 6G Formatting 'a.vmdk', fmt=vmdk size=6442450944 compat6=off subformat='monolithicFlat' zeroed_grain=off # cp a.vmdk a.vmdk.bk # git diff a.vmdk.bk a.vmdk diff --git a/a.vmdk.bk b/a.vmdk index bdb95dd..3ccfb13 100644 --- a/a.vmdk.bk +++ b/a.vmdk @@ -2,10 +2,10 @@ version=1 CID=549a7595 parentCID=ffffffff -createType="monolithicFlat" +createType="vmfs" # Extent description -RW 12582912 FLAT "a-flat.vmdk" 0 +RW 12582912 VMFS "a-flat.vmdk" 1 # The Disk Data Base #DDB # qemu-img info a.vmdk image: a.vmdk file format: vmdk virtual size: 6.0G (6442450944 bytes) disk size: 4.0K Format specific information: cid: 1419408789 parent cid: 4294967295 create type: vmfs extents: [0]: virtual size: 6442450944 filename: a-flat.vmdk format: VMFS Verify this issue on qemu-kvm-1.5.3-84.el7.x86_64 with monolithicFlat or twoGbMaxExtentSparse|twoGbMaxExtentFlat sub-format. host info: # uname -r && rpm -q qemu-kvm 3.10.0-219.el7.x86_64 qemu-kvm-1.5.3-84.el7.x86_64 ############ for twoGbMaxExtentFlat: # qemu-img create -f vmdk -o subformat=twoGbMaxExtentFlat a.vmdk 6G # cp a.vmdk a.vmdk.bk # git diff a.vmdk.bk a.vmdk diff --git a/a.vmdk.bk b/a.vmdk index d188636..ad286e2 100644 --- a/a.vmdk.bk +++ b/a.vmdk @@ -2,12 +2,12 @@ version=1 CID=549a735a parentCID=ffffffff -createType="twoGbMaxExtentFlat" +createType="vmfs" # Extent description -RW 4194304 FLAT "a-f001.vmdk" 0 -RW 4194304 FLAT "a-f002.vmdk" 0 -RW 4194304 FLAT "a-f003.vmdk" 0 +RW 4194304 VMFS "a-f001.vmdk" 1 +RW 4194304 VMFS "a-f002.vmdk" 1 +RW 4194304 VMFS "a-f003.vmdk" 1 # The Disk Data Base #DDB # qemu-img info a.vmdk qemu-img: Could not open 'a.vmdk': Invalid extent lines: RW 4194304 VMFS "a-f001.vmdk" 1 RW 4194304 VMFS "a-f002.vmdk" 1 RW 4194304 VMFS "a-f003.vmdk" 1 # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "12483" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide" ############ for twoGbMaxExtentSparse: # qemu-img info a.vmdk qemu-img: Could not open 'a.vmdk': Invalid extent lines: RW 4194304 VMFS "a-s001.vmdk" 1 RW 4194304 VMFS "a-s002.vmdk" 1 RW 4194304 VMFS "a-s003.vmdk" 1 # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "12483" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide" ############ for monolithicFlat: # qemu-img info a.vmdk qemu-img: Could not open 'a.vmdk': Invalid extent lines: RW 12582912 VMFS "a-flat.vmdk" 1 # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "12483" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide" Base on above, this issue has been fixed correctly, move to VERIFIED status. Best Regards, sluo
Tried the qemu-kvm-rhev-2.1.2-17.el7.x86_64 which did not hit this issue. host info: # uname -r && rpm -q qemu-kvm-rhev 3.10.0-219.el7.x86_64 qemu-kvm-rhev-2.1.2-17.el7.x86_64 # qemu-img info a.vmdk qemu-img: Could not open 'a.vmdk': Invalid extent lines: RW 12582912 VMFS "a-flat.vmdk" 1 # The Disk Data Base #DDB ddb.virtualHWVersion = "4" ddb.geometry.cylinders = "12483" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide" Best Regards, sluo
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-0349.html