Bug 1781868 - qemu 4.2.0 does not recognize partitions on newly created qcow2 disk
Summary: qemu 4.2.0 does not recognize partitions on newly created qcow2 disk
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: libvirt
Version: 32
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Libvirt Maintainers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-12-10 18:36 UTC by Cristian Ciupitu
Modified: 2020-03-16 20:33 UTC (History)
20 users (show)

Fixed In Version: libvirt-6.1.0-1.fc32
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-03-16 20:22:20 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
rpm -q -a (compressed with xz) (21.62 KB, application/x-xz)
2019-12-14 19:20 UTC, Cristian Ciupitu
no flags Details
list of new packages (compressed with xz) (21.64 KB, application/x-xz)
2019-12-19 07:33 UTC, Cristian Ciupitu
no flags Details
list of old packages (compressed with xz) (21.64 KB, application/x-xz)
2019-12-19 07:34 UTC, Cristian Ciupitu
no flags Details

Description Cristian Ciupitu 2019-12-10 18:36:33 UTC
Description of problem:
I have a qcow2 disk with Windows on it, which I "clone" using `qemu-img create -f qcow2 -b orig.qcow2 new.qcow2`, but the virtual machine can't boot from it. It looks like the clone has no partitions on it.

Version-Release number of selected component (if applicable):
4.2.0-0.3.rc2.fc31.x86_64

How reproducible:
Every time

Steps to Reproduce:
0. Downgrade to qemu 4.1.1-1.fc31.x86_64
1. Create a a QCOW2 disk image containing one partition. If you have libguestfs tools you can use this command:
    virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M /usr/share/empty test.qcow2

2. Upgrade to qemu 4.2.0-0.3.rc2.fc31.x86_64 
3. Clone the image:
    qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2

Actual results:
guestfish shows no partitions:
    # guestfish --ro --add test-clone.qcow2 run : list-partitions
    #

Expected results:
guestfish shows one partition:
    # guestfish --ro --add test-clone.qcow2 run : list-partitions
    /dev/sda1
    #
^^^ this happens with version 4.1.1-1.fc31.x86_64.

Additional info:
I am using qemu-img-4.2.0-0.3.rc2.fc31.x86_64, there's no need to downgrade qemu-img.

Comment 1 Cristian Ciupitu 2019-12-12 09:35:40 UTC
I've retested with 4.2.0-0.4.rc5.fc31.x86_64 and it's the same.

Comment 2 Cole Robinson 2019-12-13 21:00:43 UTC
Nice reproducer steps :) But those libguestfs steps work fine for me.

What's your host filesystem?
Does it make any difference if you create the clone image in tmpfs or a different filesystem?
Is 'qemu-img info test-clone.qcow2' different across versions?

Comment 3 Cristian Ciupitu 2019-12-14 19:19:30 UTC
I've upgraded to 4.2.0-1.fc31.x86_64 and it's still not working as it should.

[root@hermes tmp]# rpm -q -a | sort | xz -9v > /tmp/rpm-q-a.txt.xz
  100 %        21.6 KiB / 100.2 KiB = 0.216                   0:01             
[root@hermes tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M /usr/share/empty test.qcow2
[root@hermes tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes tmp]# guestfish --ro --add test-clone.qcow2 run : list-partitions
[root@hermes tmp]# stat -f -c %T .
xfs
[root@hermes tmp]# stat -f -c %T /usr/share/empty
xfs

(the original qcow2 image is created using the new qemu version instead of the old one like in comment #0)

Comment 4 Cristian Ciupitu 2019-12-14 19:20:25 UTC
Created attachment 1645213 [details]
rpm -q -a (compressed with xz)

Comment 5 Cole Robinson 2019-12-15 20:52:59 UTC
During qemu 4.2.0-rcX time, qemu was tickling some xfs bug that was leading to blatant data loss. This was worked around on the qemu side and fixed on the xfs side AFAIK.
If you can arrange to test on a different FS, like tmpfs, that will be an interesting data point.

CCing qemu block layer guys. kwolf, mreitz, any thoughts on Cristian's reproducer above?

Comment 6 Hanna Czenczek 2019-12-16 10:41:40 UTC
Hi,

I can’t see the issue myself on XFS, but as for the XFS bug Cole mentioned: That was a problem with 4.1.0, we have workarounds in both 4.1.1 and 4.2.0.  (And then there were two qcow2 bugs in 4.1.0 that we have fixed in 4.1.1 and 4.2.0.  But even if they weren’t fixed, I couldn’t really imagine any of them causing the problem described in this BZ, because they usually only appeared under heavy I/O as far as I’m aware.)  So I don’t really know what might cause the issue.

Max

Comment 7 Cristian Ciupitu 2019-12-16 22:29:58 UTC
Tested with tmpfs:

[root@hermes tmp]# pwd
/tmp
[root@hermes tmp]# stat -f -c %T .
tmpfs
[root@hermes tmp]# mkdir empty
[root@hermes tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M /tmp/empty test.qcow2
[root@hermes tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes tmp]# guestfish --ro --add test-clone.qcow2 run : list-partitions
[root@hermes tmp]#

[root@hermes tmp]# dnf downgrade --allowerasing qemu-kvm
...
Downgraded:
  qemu-audio-alsa-2:4.1.1-1.fc31.x86_64
...
[root@hermes tmp]# guestfish --ro --add test-clone.qcow2 run : list-partitions
/dev/sda1

Kernel is 5.3.16-300.fc31.x86_64 in case it matters.

Comment 8 Kevin Wolf 2019-12-17 08:40:16 UTC
Just to confirm two things I think I read implicitly from your results, but am not completely sure that I understood them right:

You're always taking a snapshot. Does this mean that if you run guestfish on test.qcow2 rather than test-clone.qcow2, you still see the partition correctly?

After doing the downgrade, you don't re-create the image nor the snapshot, but you only run guestfish again with the older qemu-kvm version and the data shows up from the same unmodfidied image? In other words, the image was created correctly, but newer versions fail to read it right?

Can you post the results of 'qemu-img compare test.qcow2 test-clone.qcow2' and 'qemu-img map test-clone.qcow2'?

Comment 9 Cristian Ciupitu 2019-12-19 07:30:28 UTC
Here's around more comprehensive round of tests that should make things clearer.

[root@hermes /tmp]# rpm -q -a | sort | xz -9v > /tmp/rpm-q-a-NEW.txt.xz
  100 %        21.6 KiB / 100.2 KiB = 0.216                   0:01
[root@hermes /tmp]# stat -f -c %T .   # testing with TMPFS
tmpfs
[root@hermes /tmp]# mkdir empty
[root@hermes /tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M "${PWD}/empty" test.qcow2
[root@hermes /tmp]# guestfish --ro --add test.qcow2  run : list-partitions
/dev/sda1
[root@hermes /tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes /tmp]# guestfish --ro --add test-clone.qcow2  run : list-partitions
[root@hermes /tmp]# cd /var/tmp
[root@hermes /var/tmp]# stat -f -c %T .   # testing with XFS
xfs
[root@hermes /var/tmp]# mkdir empty
[root@hermes /var/tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M "${PWD}/empty" test.qcow2
[root@hermes /var/tmp]# guestfish --ro --add test.qcow2  run : list-partitions
/dev/sda1
[root@hermes /var/tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes /var/tmp]# guestfish --ro --add test-clone.qcow2  run : list-partitions
[root@hermes /var/tmp]#





[root@hermes /var/tmp]# dnf downgrade --allowerasing qemu-kvm-4.1.1-1.fc31.x86_64   # downgrading to 4.1.1-1
firmware for qemu, built by jenkins, fresh from git repos                                                 18 kB/s | 2.9 kB     00:00
Dependencies resolved.
=========================================================================================================================================
 Package              Arch   Version                              Repository                                                        Size
=========================================================================================================================================
Removing dependent packages:
 qemu-ui-spice-app    x86_64 2:4.2.0-1.fc31                       @copr:copr.fedorainfracloud.org:group_virtmaint-sig:virt-preview  16 k
Downgrading:
 qemu-audio-alsa      x86_64 2:4.1.1-1.fc31                       updates                                                           24 k
 qemu-audio-oss       x86_64 2:4.1.1-1.fc31                       updates                                                           22 k
 qemu-audio-pa        x86_64 2:4.1.1-1.fc31                       updates                                                           23 k
 qemu-audio-sdl       x86_64 2:4.1.1-1.fc31                       updates                                                           19 k
 qemu-block-curl      x86_64 2:4.1.1-1.fc31                       updates                                                           24 k
 qemu-block-dmg       x86_64 2:4.1.1-1.fc31                       updates                                                           17 k
 qemu-block-gluster   x86_64 2:4.1.1-1.fc31                       updates                                                           26 k
 qemu-block-iscsi     x86_64 2:4.1.1-1.fc31                       updates                                                           33 k
 qemu-block-nfs       x86_64 2:4.1.1-1.fc31                       updates                                                           25 k
 qemu-block-rbd       x86_64 2:4.1.1-1.fc31                       updates                                                           26 k
 qemu-block-ssh       x86_64 2:4.1.1-1.fc31                       updates                                                           27 k
 qemu-common          x86_64 2:4.1.1-1.fc31                       updates                                                          1.2 M
 qemu-kvm             x86_64 2:4.1.1-1.fc31                       updates                                                           13 k
 qemu-system-x86      x86_64 2:4.1.1-1.fc31                       updates                                                           13 k
 qemu-system-x86-core x86_64 2:4.1.1-1.fc31                       updates                                                          6.3 M
 qemu-ui-curses       x86_64 2:4.1.1-1.fc31                       updates                                                           26 k
 qemu-ui-gtk          x86_64 2:4.1.1-1.fc31                       updates                                                           39 k
 qemu-ui-sdl          x86_64 2:4.1.1-1.fc31                       updates                                                           29 k
 virglrenderer        x86_64 0.7.0-4.20190424gitd1758cc09.fc31    fedora                                                           208 k

Transaction Summary
=========================================================================================================================================
Remove      1 Package
Downgrade  19 Packages

Total size: 8.1 M
Is this ok [y/N]: y
Downloading Packages:
[SKIPPED] qemu-audio-alsa-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-audio-oss-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-audio-pa-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-audio-sdl-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-curl-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-dmg-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-gluster-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-iscsi-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-nfs-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-rbd-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-block-ssh-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-common-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-kvm-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-system-x86-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-system-x86-core-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-ui-curses-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-ui-gtk-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] qemu-ui-sdl-4.1.1-1.fc31.x86_64.rpm: Already downloaded
[SKIPPED] virglrenderer-0.7.0-4.20190424gitd1758cc09.fc31.x86_64.rpm: Already downloaded
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                      1/1
  Running scriptlet: virglrenderer-0.7.0-4.20190424gitd1758cc09.fc31.x86_64               1/1
  Downgrading      : virglrenderer-0.7.0-4.20190424gitd1758cc09.fc31.x86_64              1/39
  Downgrading      : qemu-common-2:4.1.1-1.fc31.x86_64                                   2/39
  Running scriptlet: qemu-common-2:4.1.1-1.fc31.x86_64                                   2/39
  Downgrading      : qemu-audio-alsa-2:4.1.1-1.fc31.x86_64                               3/39
  Downgrading      : qemu-audio-oss-2:4.1.1-1.fc31.x86_64                                4/39
  Downgrading      : qemu-audio-pa-2:4.1.1-1.fc31.x86_64                                 5/39
  Downgrading      : qemu-audio-sdl-2:4.1.1-1.fc31.x86_64                                6/39
  Downgrading      : qemu-block-curl-2:4.1.1-1.fc31.x86_64                               7/39
  Downgrading      : qemu-block-dmg-2:4.1.1-1.fc31.x86_64                                8/39
  Downgrading      : qemu-block-gluster-2:4.1.1-1.fc31.x86_64                            9/39
  Downgrading      : qemu-block-iscsi-2:4.1.1-1.fc31.x86_64                             10/39
  Downgrading      : qemu-block-nfs-2:4.1.1-1.fc31.x86_64                               11/39
  Downgrading      : qemu-block-rbd-2:4.1.1-1.fc31.x86_64                               12/39
  Downgrading      : qemu-block-ssh-2:4.1.1-1.fc31.x86_64                               13/39
  Downgrading      : qemu-system-x86-core-2:4.1.1-1.fc31.x86_64                         14/39
  Downgrading      : qemu-ui-curses-2:4.1.1-1.fc31.x86_64                               15/39
  Downgrading      : qemu-ui-gtk-2:4.1.1-1.fc31.x86_64                                  16/39
  Downgrading      : qemu-ui-sdl-2:4.1.1-1.fc31.x86_64                                  17/39
  Downgrading      : qemu-system-x86-2:4.1.1-1.fc31.x86_64                              18/39
  Downgrading      : qemu-kvm-2:4.1.1-1.fc31.x86_64                                     19/39
  Cleanup          : qemu-kvm-2:4.2.0-1.fc31.x86_64                                     20/39
  Cleanup          : qemu-system-x86-2:4.2.0-1.fc31.x86_64                              21/39
  Cleanup          : qemu-system-x86-core-2:4.2.0-1.fc31.x86_64                         22/39
  Cleanup          : qemu-audio-alsa-2:4.2.0-1.fc31.x86_64                              23/39
  Cleanup          : qemu-audio-oss-2:4.2.0-1.fc31.x86_64                               24/39
  Cleanup          : qemu-audio-pa-2:4.2.0-1.fc31.x86_64                                25/39
  Cleanup          : qemu-audio-sdl-2:4.2.0-1.fc31.x86_64                               26/39
  Cleanup          : qemu-block-curl-2:4.2.0-1.fc31.x86_64                              27/39
  Cleanup          : qemu-block-dmg-2:4.2.0-1.fc31.x86_64                               28/39
  Cleanup          : qemu-block-gluster-2:4.2.0-1.fc31.x86_64                           29/39
  Cleanup          : qemu-block-iscsi-2:4.2.0-1.fc31.x86_64                             30/39
  Cleanup          : qemu-block-nfs-2:4.2.0-1.fc31.x86_64                               31/39
  Cleanup          : qemu-block-rbd-2:4.2.0-1.fc31.x86_64                               32/39
  Cleanup          : qemu-block-ssh-2:4.2.0-1.fc31.x86_64                               33/39
  Cleanup          : qemu-ui-curses-2:4.2.0-1.fc31.x86_64                               34/39
  Cleanup          : qemu-ui-gtk-2:4.2.0-1.fc31.x86_64                                  35/39
  Cleanup          : qemu-ui-sdl-2:4.2.0-1.fc31.x86_64                                  36/39
  Erasing          : qemu-ui-spice-app-2:4.2.0-1.fc31.x86_64                            37/39
  Cleanup          : qemu-common-2:4.2.0-1.fc31.x86_64                                  38/39
  Cleanup          : virglrenderer-0.8.0-1.20191002git4ac3a04c.fc31.x86_64              39/39
  Running scriptlet: virglrenderer-0.8.0-1.20191002git4ac3a04c.fc31.x86_64              39/39
  Verifying        : qemu-audio-alsa-2:4.1.1-1.fc31.x86_64                               1/39
  Verifying        : qemu-audio-alsa-2:4.2.0-1.fc31.x86_64                               2/39
  Verifying        : qemu-audio-oss-2:4.1.1-1.fc31.x86_64                                3/39
  Verifying        : qemu-audio-oss-2:4.2.0-1.fc31.x86_64                                4/39
  Verifying        : qemu-audio-pa-2:4.1.1-1.fc31.x86_64                                 5/39
  Verifying        : qemu-audio-pa-2:4.2.0-1.fc31.x86_64                                 6/39
  Verifying        : qemu-audio-sdl-2:4.1.1-1.fc31.x86_64                                7/39
  Verifying        : qemu-audio-sdl-2:4.2.0-1.fc31.x86_64                                8/39
  Verifying        : qemu-block-curl-2:4.1.1-1.fc31.x86_64                               9/39
  Verifying        : qemu-block-curl-2:4.2.0-1.fc31.x86_64                              10/39
  Verifying        : qemu-block-dmg-2:4.1.1-1.fc31.x86_64                               11/39
  Verifying        : qemu-block-dmg-2:4.2.0-1.fc31.x86_64                               12/39
  Verifying        : qemu-block-gluster-2:4.1.1-1.fc31.x86_64                           13/39
  Verifying        : qemu-block-gluster-2:4.2.0-1.fc31.x86_64                           14/39
  Verifying        : qemu-block-iscsi-2:4.1.1-1.fc31.x86_64                             15/39
  Verifying        : qemu-block-iscsi-2:4.2.0-1.fc31.x86_64                             16/39
  Verifying        : qemu-block-nfs-2:4.1.1-1.fc31.x86_64                               17/39
  Verifying        : qemu-block-nfs-2:4.2.0-1.fc31.x86_64                               18/39
  Verifying        : qemu-block-rbd-2:4.1.1-1.fc31.x86_64                               19/39
  Verifying        : qemu-block-rbd-2:4.2.0-1.fc31.x86_64                               20/39
  Verifying        : qemu-block-ssh-2:4.1.1-1.fc31.x86_64                               21/39
  Verifying        : qemu-block-ssh-2:4.2.0-1.fc31.x86_64                               22/39
  Verifying        : qemu-common-2:4.1.1-1.fc31.x86_64                                  23/39
  Verifying        : qemu-common-2:4.2.0-1.fc31.x86_64                                  24/39
  Verifying        : qemu-kvm-2:4.1.1-1.fc31.x86_64                                     25/39
  Verifying        : qemu-kvm-2:4.2.0-1.fc31.x86_64                                     26/39
  Verifying        : qemu-system-x86-2:4.1.1-1.fc31.x86_64                              27/39
  Verifying        : qemu-system-x86-2:4.2.0-1.fc31.x86_64                              28/39
  Verifying        : qemu-system-x86-core-2:4.1.1-1.fc31.x86_64                         29/39
  Verifying        : qemu-system-x86-core-2:4.2.0-1.fc31.x86_64                         30/39
  Verifying        : qemu-ui-curses-2:4.1.1-1.fc31.x86_64                               31/39
  Verifying        : qemu-ui-curses-2:4.2.0-1.fc31.x86_64                               32/39
  Verifying        : qemu-ui-gtk-2:4.1.1-1.fc31.x86_64                                  33/39
  Verifying        : qemu-ui-gtk-2:4.2.0-1.fc31.x86_64                                  34/39
  Verifying        : qemu-ui-sdl-2:4.1.1-1.fc31.x86_64                                  35/39
  Verifying        : qemu-ui-sdl-2:4.2.0-1.fc31.x86_64                                  36/39
  Verifying        : virglrenderer-0.7.0-4.20190424gitd1758cc09.fc31.x86_64             37/39
  Verifying        : virglrenderer-0.8.0-1.20191002git4ac3a04c.fc31.x86_64              38/39
  Verifying        : qemu-ui-spice-app-2:4.2.0-1.fc31.x86_64                            39/39

Downgraded:
  qemu-audio-alsa-2:4.1.1-1.fc31.x86_64                            qemu-audio-oss-2:4.1.1-1.fc31.x86_64
  qemu-audio-pa-2:4.1.1-1.fc31.x86_64                              qemu-audio-sdl-2:4.1.1-1.fc31.x86_64
  qemu-block-curl-2:4.1.1-1.fc31.x86_64                            qemu-block-dmg-2:4.1.1-1.fc31.x86_64
  qemu-block-gluster-2:4.1.1-1.fc31.x86_64                         qemu-block-iscsi-2:4.1.1-1.fc31.x86_64
  qemu-block-nfs-2:4.1.1-1.fc31.x86_64                             qemu-block-rbd-2:4.1.1-1.fc31.x86_64
  qemu-block-ssh-2:4.1.1-1.fc31.x86_64                             qemu-common-2:4.1.1-1.fc31.x86_64
  qemu-kvm-2:4.1.1-1.fc31.x86_64                                   qemu-system-x86-2:4.1.1-1.fc31.x86_64
  qemu-system-x86-core-2:4.1.1-1.fc31.x86_64                       qemu-ui-curses-2:4.1.1-1.fc31.x86_64
  qemu-ui-gtk-2:4.1.1-1.fc31.x86_64                                qemu-ui-sdl-2:4.1.1-1.fc31.x86_64
  virglrenderer-0.7.0-4.20190424gitd1758cc09.fc31.x86_64

Removed:
  qemu-ui-spice-app-2:4.2.0-1.fc31.x86_64

Complete!


[root@hermes /var/tmp]# rpm -q -a | sort | xz -9v > /tmp/rpm-q-a-OLD.txt.xz
  100 %        21.6 KiB / 100.2 KiB = 0.216                   0:01
[root@hermes /var/tmp]# cd /tmp
[root@hermes /tmp]# rmdir empty && rm test.qcow2 test-clone.qcow2
rm: remove regular file 'test.qcow2'? y
rm: remove regular file 'test-clone.qcow2'? y
[root@hermes /tmp]# stat -f -c %T .   # testing with TMPFS
tmpfs
[root@hermes /tmp]# mkdir empty
[root@hermes /tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M "${PWD}/empty" test.qcow2
[root@hermes /tmp]# guestfish --ro --add test.qcow2  run : list-partitions
/dev/sda1
[root@hermes /tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes /tmp]# guestfish --ro --add test-clone.qcow2  run : list-partitions
/dev/sda1
[root@hermes /tmp]# cd /var/tmp
[root@hermes /var/tmp]# rmdir empty && rm test.qcow2 test-clone.qcow2
rm: remove regular file 'test.qcow2'? y
rm: remove regular file 'test-clone.qcow2'? y
[root@hermes /var/tmp]# stat -f -c %T .   # testing with XFS
xfs
[root@hermes /var/tmp]# mkdir empty
[root@hermes /var/tmp]# virt-make-fs --format=qcow2 --partition=mbr --type=ext3 --label=test --size=128M "${PWD}/empty" test.qcow2
[root@hermes /var/tmp]# guestfish --ro --add test.qcow2  run : list-partitions
/dev/sda1
[root@hermes /var/tmp]# qemu-img create -f qcow2 -b test.qcow2 test-clone.qcow2
Formatting 'test-clone.qcow2', fmt=qcow2 size=134217728 backing_file=test.qcow2 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@hermes /var/tmp]# guestfish --ro --add test-clone.qcow2  run : list-partitions
/dev/sda1
[root@hermes /var/tmp]#

Comment 10 Cristian Ciupitu 2019-12-19 07:33:21 UTC
Created attachment 1646324 [details]
list of new packages (compressed with xz)

rpm -q -a  # NEW packages

Comment 11 Cristian Ciupitu 2019-12-19 07:34:26 UTC
Created attachment 1646325 [details]
list of old packages (compressed with xz)

rpm -q -a  # OLD packages

Comment 12 Cristian Ciupitu 2019-12-19 07:42:56 UTC
Oops, I forgot to post the analysis of the QCOW2 images.

# NEW VERSION / TMPFS

[root@hermes /tmp]# qemu-img compare test.qcow2 test-clone.qcow2
Images are identical.
[root@hermes /tmp]# qemu-img map test-clone.qcow2
Offset          Length          Mapped to       File
0               0x3000          0x50000         test.qcow2
0x10000         0x50000         0x60000         test.qcow2
0x90000         0x409000        0xe0000         test.qcow2
0x810000        0x1000          0x860000        test.qcow2
0x850000        0x10000         0x8a0000        test.qcow2
0x890000        0x2000          0x8e0000        test.qcow2
0x1010000       0x10000         0x1060000       test.qcow2
0x1050000       0x1000          0x10a0000       test.qcow2
0x1810000       0x1000          0x1860000       test.qcow2
0x1850000       0x10000         0x18a0000       test.qcow2
0x1890000       0x2000          0x18e0000       test.qcow2
0x2010000       0x10000         0x2060000       test.qcow2
0x2050000       0x1000          0x20a0000       test.qcow2
0x2810000       0x1000          0x2860000       test.qcow2
0x2850000       0x10000         0x28a0000       test.qcow2
0x2890000       0x2000          0x28e0000       test.qcow2
0x3010000       0x10000         0x3060000       test.qcow2
0x3050000       0x1000          0x30a0000       test.qcow2
0x3810000       0x1000          0x3860000       test.qcow2
0x3850000       0x10000         0x38a0000       test.qcow2
0x3890000       0x2000          0x38e0000       test.qcow2
0x4010000       0x10000         0x4060000       test.qcow2
0x4050000       0x1000          0x40a0000       test.qcow2
0x4810000       0x1000          0x4860000       test.qcow2
0x4850000       0x10000         0x48a0000       test.qcow2
0x4890000       0x2000          0x48e0000       test.qcow2
0x5010000       0x10000         0x5060000       test.qcow2
0x5050000       0x1000          0x50a0000       test.qcow2
0x5810000       0x10000         0x5860000       test.qcow2
0x5850000       0x1000          0x58a0000       test.qcow2
0x6010000       0x10000         0x6060000       test.qcow2
0x6050000       0x1000          0x60a0000       test.qcow2
0x6810000       0x10000         0x6860000       test.qcow2
0x6850000       0x1000          0x68a0000       test.qcow2
0x7010000       0x10000         0x7060000       test.qcow2
0x7050000       0x1000          0x70a0000       test.qcow2
0x7810000       0x10000         0x7860000       test.qcow2
0x7850000       0x1000          0x78a0000       test.qcow2
0x7ffd000       0x3000          0x804d000       test.qcow2


# NEW VERSION / XFS

[root@hermes /var/tmp]# qemu-img compare test.qcow2 test-clone.qcow2
Images are identical.
[root@hermes /var/tmp]# qemu-img map test-clone.qcow2
Offset          Length          Mapped to       File
0               0x60000         0x50000         test.qcow2
0x90000         0x409000        0xe0000         test.qcow2
0x810000        0x1000          0x860000        test.qcow2
0x850000        0x10000         0x8a0000        test.qcow2
0x890000        0x2000          0x8e0000        test.qcow2
0x1010000       0x10000         0x1060000       test.qcow2
0x1050000       0x1000          0x10a0000       test.qcow2
0x1810000       0x1000          0x1860000       test.qcow2
0x1850000       0x10000         0x18a0000       test.qcow2
0x1890000       0x2000          0x18e0000       test.qcow2
0x2010000       0x10000         0x2060000       test.qcow2
0x2050000       0x1000          0x20a0000       test.qcow2
0x2810000       0x1000          0x2860000       test.qcow2
0x2850000       0x10000         0x28a0000       test.qcow2
0x2890000       0x2000          0x28e0000       test.qcow2
0x3010000       0x10000         0x3060000       test.qcow2
0x3050000       0x1000          0x30a0000       test.qcow2
0x3810000       0x1000          0x3860000       test.qcow2
0x3850000       0x10000         0x38a0000       test.qcow2
0x3890000       0x2000          0x38e0000       test.qcow2
0x4010000       0x10000         0x4060000       test.qcow2
0x4050000       0x1000          0x40a0000       test.qcow2
0x4810000       0x1000          0x4860000       test.qcow2
0x4850000       0x10000         0x48a0000       test.qcow2
0x4890000       0x2000          0x48e0000       test.qcow2
0x5010000       0x10000         0x5060000       test.qcow2
0x5050000       0x1000          0x50a0000       test.qcow2
0x5810000       0x10000         0x5860000       test.qcow2
0x5850000       0x1000          0x58a0000       test.qcow2
0x6010000       0x10000         0x6060000       test.qcow2
0x6050000       0x1000          0x60a0000       test.qcow2
0x6810000       0x10000         0x6860000       test.qcow2
0x6850000       0x1000          0x68a0000       test.qcow2
0x7010000       0x10000         0x7060000       test.qcow2
0x7050000       0x1000          0x70a0000       test.qcow2
0x7810000       0x10000         0x7860000       test.qcow2
0x7850000       0x1000          0x78a0000       test.qcow2
0x7ffd000       0x3000          0x804d000       test.qcow2




# OLD VERSION / TMPFS

[root@hermes /tmp]# qemu-img compare test.qcow2 test-clone.qcow2
Images are identical.
[root@hermes /tmp]# qemu-img map test-clone.qcow2
Offset          Length          Mapped to       File
0               0x3000          0x50000         test.qcow2
0x10000         0x50000         0x60000         test.qcow2
0x90000         0x409000        0xe0000         test.qcow2
0x810000        0x1000          0x860000        test.qcow2
0x850000        0x10000         0x8a0000        test.qcow2
0x890000        0x2000          0x8e0000        test.qcow2
0x1010000       0x10000         0x1060000       test.qcow2
0x1050000       0x1000          0x10a0000       test.qcow2
0x1810000       0x1000          0x1860000       test.qcow2
0x1850000       0x10000         0x18a0000       test.qcow2
0x1890000       0x2000          0x18e0000       test.qcow2
0x2010000       0x10000         0x2060000       test.qcow2
0x2050000       0x1000          0x20a0000       test.qcow2
0x2810000       0x1000          0x2860000       test.qcow2
0x2850000       0x10000         0x28a0000       test.qcow2
0x2890000       0x2000          0x28e0000       test.qcow2
0x3010000       0x10000         0x3060000       test.qcow2
0x3050000       0x1000          0x30a0000       test.qcow2
0x3810000       0x1000          0x3860000       test.qcow2
0x3850000       0x10000         0x38a0000       test.qcow2
0x3890000       0x2000          0x38e0000       test.qcow2
0x4010000       0x10000         0x4060000       test.qcow2
0x4050000       0x1000          0x40a0000       test.qcow2
0x4810000       0x1000          0x4860000       test.qcow2
0x4850000       0x10000         0x48a0000       test.qcow2
0x4890000       0x2000          0x48e0000       test.qcow2
0x5010000       0x10000         0x5060000       test.qcow2
0x5050000       0x1000          0x50a0000       test.qcow2
0x5810000       0x10000         0x5860000       test.qcow2
0x5850000       0x1000          0x58a0000       test.qcow2
0x6010000       0x10000         0x6060000       test.qcow2
0x6050000       0x1000          0x60a0000       test.qcow2
0x6810000       0x10000         0x6860000       test.qcow2
0x6850000       0x1000          0x68a0000       test.qcow2
0x7010000       0x10000         0x7060000       test.qcow2
0x7050000       0x1000          0x70a0000       test.qcow2
0x7810000       0x10000         0x7860000       test.qcow2
0x7850000       0x1000          0x78a0000       test.qcow2
0x7ffd000       0x3000          0x804d000       test.qcow2


# OLD VERSION / XFS

[root@hermes /var/tmp]# qemu-img compare test.qcow2 test-clone.qcow2
Images are identical.
[root@hermes /var/tmp]# qemu-img map test-clone.qcow2
Offset          Length          Mapped to       File
0               0x60000         0x50000         test.qcow2
0x90000         0x409000        0xe0000         test.qcow2
0x810000        0x1000          0x860000        test.qcow2
0x850000        0x10000         0x8a0000        test.qcow2
0x890000        0x2000          0x8e0000        test.qcow2
0x1010000       0x10000         0x1060000       test.qcow2
0x1050000       0x1000          0x10a0000       test.qcow2
0x1810000       0x1000          0x1860000       test.qcow2
0x1850000       0x10000         0x18a0000       test.qcow2
0x1890000       0x2000          0x18e0000       test.qcow2
0x2010000       0x10000         0x2060000       test.qcow2
0x2050000       0x1000          0x20a0000       test.qcow2
0x2810000       0x1000          0x2860000       test.qcow2
0x2850000       0x10000         0x28a0000       test.qcow2
0x2890000       0x2000          0x28e0000       test.qcow2
0x3010000       0x10000         0x3060000       test.qcow2
0x3050000       0x1000          0x30a0000       test.qcow2
0x3810000       0x1000          0x3860000       test.qcow2
0x3850000       0x10000         0x38a0000       test.qcow2
0x3890000       0x2000          0x38e0000       test.qcow2
0x4010000       0x10000         0x4060000       test.qcow2
0x4050000       0x1000          0x40a0000       test.qcow2
0x4810000       0x1000          0x4860000       test.qcow2
0x4850000       0x10000         0x48a0000       test.qcow2
0x4890000       0x2000          0x48e0000       test.qcow2
0x5010000       0x10000         0x5060000       test.qcow2
0x5050000       0x1000          0x50a0000       test.qcow2
0x5810000       0x10000         0x5860000       test.qcow2
0x5850000       0x1000          0x58a0000       test.qcow2
0x6010000       0x10000         0x6060000       test.qcow2
0x6050000       0x1000          0x60a0000       test.qcow2
0x6810000       0x10000         0x6860000       test.qcow2
0x6850000       0x1000          0x68a0000       test.qcow2
0x7010000       0x10000         0x7060000       test.qcow2
0x7050000       0x1000          0x70a0000       test.qcow2
0x7810000       0x10000         0x7860000       test.qcow2
0x7850000       0x1000          0x78a0000       test.qcow2
0x7ffd000       0x3000          0x804d000       test.qcow2

Comment 13 Cristian Ciupitu 2019-12-22 19:17:38 UTC
Upgraded to 4.2.0-2.fc31.x86_64 and it's still not working.

Comment 14 Cole Robinson 2019-12-22 20:52:07 UTC
Can you provide 'sudo virsh capabilities' output? Just want to be sure there's no non-/usr/bin qemu binaries detected

Comment 15 Cristian Ciupitu 2019-12-23 08:26:07 UTC
# rpm -q -f /usr/bin/qemu-kvm 
qemu-system-x86-core-4.1.1-1.fc31.x86_64
# virsh capabilities
<capabilities>

  <host>
    <uuid>d84528be-ef6e-e111-bd11-0011118582dc</uuid>
    <cpu>
      <arch>x86_64</arch>
      <model>IvyBridge</model>
      <vendor>Intel</vendor>
      <microcode version='23'/>
      <counter name='tsc' frequency='3392293000' scaling='no'/>
      <topology sockets='1' cores='4' threads='2'/>
      <feature name='ds'/>
      <feature name='acpi'/>
      <feature name='ss'/>
      <feature name='ht'/>
      <feature name='tm'/>
      <feature name='pbe'/>
      <feature name='dtes64'/>
      <feature name='monitor'/>
      <feature name='ds_cpl'/>
      <feature name='vmx'/>
      <feature name='smx'/>
      <feature name='est'/>
      <feature name='tm2'/>
      <feature name='xtpr'/>
      <feature name='pdcm'/>
      <feature name='pcid'/>
      <feature name='osxsave'/>
      <feature name='arat'/>
      <feature name='xsaveopt'/>
      <feature name='invtsc'/>
      <pages unit='KiB' size='4'/>
      <pages unit='KiB' size='2048'/>
    </cpu>
    <power_management>
      <suspend_mem/>
      <suspend_disk/>
      <suspend_hybrid/>
    </power_management>
    <iommu support='yes'/>
    <migration_features>
      <live/>
      <uri_transports>
        <uri_transport>tcp</uri_transport>
        <uri_transport>rdma</uri_transport>
      </uri_transports>
    </migration_features>
    <topology>
      <cells num='1'>
        <cell id='0'>
          <memory unit='KiB'>32841044</memory>
          <pages unit='KiB' size='4'>8210261</pages>
          <pages unit='KiB' size='2048'>0</pages>
          <distances>
            <sibling id='0' value='10'/>
          </distances>
          <cpus num='8'>
            <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/>
            <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/>
            <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/>
            <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/>
            <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/>
            <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/>
            <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/>
            <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/>
          </cpus>
        </cell>
      </cells>
    </topology>
    <cache>
      <bank id='0' level='3' type='both' size='8' unit='MiB' cpus='0-7'/>
    </cache>
    <secmodel>
      <model>selinux</model>
      <doi>0</doi>
      <baselabel type='kvm'>system_u:system_r:svirt_t:s0</baselabel>
      <baselabel type='qemu'>system_u:system_r:svirt_tcg_t:s0</baselabel>
    </secmodel>
    <secmodel>
      <model>dac</model>
      <doi>0</doi>
      <baselabel type='kvm'>+107:+107</baselabel>
      <baselabel type='qemu'>+107:+107</baselabel>
    </secmodel>
  </host>

  <guest>
    <os_type>hvm</os_type>
    <arch name='i686'>
      <wordsize>32</wordsize>
      <emulator>/usr/bin/qemu-system-i386</emulator>
      <machine maxCpus='255'>pc-i440fx-4.1</machine>
      <machine canonical='pc-i440fx-4.1' maxCpus='255'>pc</machine>
      <machine maxCpus='255'>pc-0.15</machine>
      <machine maxCpus='255'>pc-i440fx-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.0</machine>
      <machine maxCpus='1'>xenpv</machine>
      <machine maxCpus='255'>pc-i440fx-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-1.5</machine>
      <machine maxCpus='255'>pc-q35-2.7</machine>
      <machine maxCpus='255'>pc-0.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.2</machine>
      <machine maxCpus='255'>pc-1.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.7</machine>
      <machine maxCpus='255'>pc-q35-2.4</machine>
      <machine maxCpus='288'>pc-q35-2.10</machine>
      <machine maxCpus='255'>pc-i440fx-1.7</machine>
      <machine maxCpus='255'>pc-0.14</machine>
      <machine maxCpus='288'>pc-q35-2.9</machine>
      <machine maxCpus='255'>pc-i440fx-2.11</machine>
      <machine maxCpus='288'>pc-q35-3.1</machine>
      <machine maxCpus='288'>pc-q35-4.1</machine>
      <machine canonical='pc-q35-4.1' maxCpus='288'>q35</machine>
      <machine maxCpus='255'>pc-i440fx-2.4</machine>
      <machine maxCpus='255'>pc-1.3</machine>
      <machine maxCpus='255'>pc-i440fx-2.9</machine>
      <machine maxCpus='1'>isapc</machine>
      <machine maxCpus='255'>pc-i440fx-1.4</machine>
      <machine maxCpus='255'>pc-q35-2.6</machine>
      <machine maxCpus='255'>pc-i440fx-3.1</machine>
      <machine maxCpus='128'>xenfv</machine>
      <machine maxCpus='288'>pc-q35-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.1</machine>
      <machine maxCpus='255'>pc-1.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.6</machine>
      <machine maxCpus='288'>pc-q35-4.0.1</machine>
      <machine maxCpus='255'>pc-i440fx-1.6</machine>
      <machine maxCpus='255'>pc-0.13</machine>
      <machine maxCpus='288'>pc-q35-2.8</machine>
      <machine maxCpus='255'>pc-i440fx-2.10</machine>
      <machine maxCpus='288'>pc-q35-3.0</machine>
      <machine maxCpus='288'>pc-q35-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.3</machine>
      <machine maxCpus='255'>pc-1.2</machine>
      <machine maxCpus='255'>pc-i440fx-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.8</machine>
      <machine maxCpus='255'>pc-q35-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-3.0</machine>
      <machine maxCpus='288'>pc-q35-2.11</machine>
      <domain type='qemu'/>
      <domain type='kvm'/>
    </arch>
    <features>
      <pae/>
      <nonpae/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
    </features>
  </guest>

  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <machine maxCpus='255'>pc-i440fx-4.1</machine>
      <machine canonical='pc-i440fx-4.1' maxCpus='255'>pc</machine>
      <machine maxCpus='255'>pc-0.15</machine>
      <machine maxCpus='255'>pc-i440fx-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.0</machine>
      <machine maxCpus='1'>xenpv</machine>
      <machine maxCpus='255'>pc-i440fx-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-1.5</machine>
      <machine maxCpus='255'>pc-q35-2.7</machine>
      <machine maxCpus='255'>pc-0.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.2</machine>
      <machine maxCpus='255'>pc-1.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.7</machine>
      <machine maxCpus='255'>pc-q35-2.4</machine>
      <machine maxCpus='288'>pc-q35-2.10</machine>
      <machine maxCpus='255'>pc-i440fx-1.7</machine>
      <machine maxCpus='255'>pc-0.14</machine>
      <machine maxCpus='288'>pc-q35-2.9</machine>
      <machine maxCpus='255'>pc-i440fx-2.11</machine>
      <machine maxCpus='288'>pc-q35-3.1</machine>
      <machine maxCpus='288'>pc-q35-4.1</machine>
      <machine canonical='pc-q35-4.1' maxCpus='288'>q35</machine>
      <machine maxCpus='255'>pc-i440fx-2.4</machine>
      <machine maxCpus='255'>pc-1.3</machine>
      <machine maxCpus='255'>pc-i440fx-2.9</machine>
      <machine maxCpus='1'>isapc</machine>
      <machine maxCpus='255'>pc-i440fx-1.4</machine>
      <machine maxCpus='255'>pc-q35-2.6</machine>
      <machine maxCpus='128'>xenfv</machine>
      <machine maxCpus='255'>pc-i440fx-3.1</machine>
      <machine maxCpus='288'>pc-q35-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.1</machine>
      <machine maxCpus='255'>pc-1.0</machine>
      <machine maxCpus='288'>pc-q35-4.0.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.6</machine>
      <machine maxCpus='255'>pc-i440fx-1.6</machine>
      <machine maxCpus='255'>pc-0.13</machine>
      <machine maxCpus='288'>pc-q35-2.8</machine>
      <machine maxCpus='255'>pc-i440fx-2.10</machine>
      <machine maxCpus='288'>pc-q35-3.0</machine>
      <machine maxCpus='288'>pc-q35-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.3</machine>
      <machine maxCpus='255'>pc-1.2</machine>
      <machine maxCpus='255'>pc-i440fx-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.8</machine>
      <machine maxCpus='255'>pc-q35-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-3.0</machine>
      <machine maxCpus='288'>pc-q35-2.11</machine>
      <domain type='qemu'/>
      <domain type='kvm'/>
    </arch>
    <features>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
    </features>
  </guest>

</capabilities>


---------------------------------------------


# rpm -q -f /usr/bin/qemu-kvm 
qemu-system-x86-core-4.2.0-2.fc31.x86_64
# virsh capabilities
<capabilities>

  <host>
    <uuid>d84528be-ef6e-e111-bd11-0011118582dc</uuid>
    <cpu>
      <arch>x86_64</arch>
      <model>IvyBridge</model>
      <vendor>Intel</vendor>
      <microcode version='23'/>
      <counter name='tsc' frequency='3392293000' scaling='no'/>
      <topology sockets='1' cores='4' threads='2'/>
      <feature name='ds'/>
      <feature name='acpi'/>
      <feature name='ss'/>
      <feature name='ht'/>
      <feature name='tm'/>
      <feature name='pbe'/>
      <feature name='dtes64'/>
      <feature name='monitor'/>
      <feature name='ds_cpl'/>
      <feature name='vmx'/>
      <feature name='smx'/>
      <feature name='est'/>
      <feature name='tm2'/>
      <feature name='xtpr'/>
      <feature name='pdcm'/>
      <feature name='pcid'/>
      <feature name='osxsave'/>
      <feature name='arat'/>
      <feature name='xsaveopt'/>
      <feature name='invtsc'/>
      <pages unit='KiB' size='4'/>
      <pages unit='KiB' size='2048'/>
    </cpu>
    <power_management>
      <suspend_mem/>
      <suspend_disk/>
      <suspend_hybrid/>
    </power_management>
    <iommu support='yes'/>
    <migration_features>
      <live/>
      <uri_transports>
        <uri_transport>tcp</uri_transport>
        <uri_transport>rdma</uri_transport>
      </uri_transports>
    </migration_features>
    <topology>
      <cells num='1'>
        <cell id='0'>
          <memory unit='KiB'>32841044</memory>
          <pages unit='KiB' size='4'>8210261</pages>
          <pages unit='KiB' size='2048'>0</pages>
          <distances>
            <sibling id='0' value='10'/>
          </distances>
          <cpus num='8'>
            <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/>
            <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/>
            <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/>
            <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/>
            <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/>
            <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/>
            <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/>
            <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/>
          </cpus>
        </cell>
      </cells>
    </topology>
    <cache>
      <bank id='0' level='3' type='both' size='8' unit='MiB' cpus='0-7'/>
    </cache>
    <secmodel>
      <model>selinux</model>
      <doi>0</doi>
      <baselabel type='kvm'>system_u:system_r:svirt_t:s0</baselabel>
      <baselabel type='qemu'>system_u:system_r:svirt_tcg_t:s0</baselabel>
    </secmodel>
    <secmodel>
      <model>dac</model>
      <doi>0</doi>
      <baselabel type='kvm'>+107:+107</baselabel>
      <baselabel type='qemu'>+107:+107</baselabel>
    </secmodel>
  </host>

  <guest>
    <os_type>hvm</os_type>
    <arch name='i686'>
      <wordsize>32</wordsize>
      <emulator>/usr/bin/qemu-system-i386</emulator>
      <machine maxCpus='255'>pc-i440fx-4.2</machine>
      <machine canonical='pc-i440fx-4.2' maxCpus='255'>pc</machine>
      <machine maxCpus='255'>pc-0.15</machine>
      <machine maxCpus='255'>pc-i440fx-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.0</machine>
      <machine maxCpus='1'>xenpv</machine>
      <machine maxCpus='288'>pc-q35-4.2</machine>
      <machine canonical='pc-q35-4.2' maxCpus='288'>q35</machine>
      <machine maxCpus='255'>pc-i440fx-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-1.5</machine>
      <machine maxCpus='255'>pc-0.12</machine>
      <machine maxCpus='255'>pc-q35-2.7</machine>
      <machine maxCpus='255'>pc-i440fx-2.2</machine>
      <machine maxCpus='255'>pc-1.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.7</machine>
      <machine maxCpus='255'>pc-q35-2.4</machine>
      <machine maxCpus='288'>pc-q35-2.10</machine>
      <machine maxCpus='255'>pc-i440fx-1.7</machine>
      <machine maxCpus='255'>pc-0.14</machine>
      <machine maxCpus='288'>pc-q35-2.9</machine>
      <machine maxCpus='255'>pc-i440fx-2.11</machine>
      <machine maxCpus='288'>pc-q35-3.1</machine>
      <machine maxCpus='288'>pc-q35-4.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.4</machine>
      <machine maxCpus='255'>pc-1.3</machine>
      <machine maxCpus='255'>pc-i440fx-4.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.9</machine>
      <machine maxCpus='1'>isapc</machine>
      <machine maxCpus='255'>pc-i440fx-1.4</machine>
      <machine maxCpus='255'>pc-q35-2.6</machine>
      <machine maxCpus='255'>pc-i440fx-3.1</machine>
      <machine maxCpus='128'>xenfv</machine>
      <machine maxCpus='288'>pc-q35-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.1</machine>
      <machine maxCpus='255'>pc-1.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.6</machine>
      <machine maxCpus='288'>pc-q35-4.0.1</machine>
      <machine maxCpus='255'>pc-i440fx-1.6</machine>
      <machine maxCpus='255'>pc-0.13</machine>
      <machine maxCpus='288'>pc-q35-2.8</machine>
      <machine maxCpus='255'>pc-i440fx-2.10</machine>
      <machine maxCpus='288'>pc-q35-3.0</machine>
      <machine maxCpus='288'>pc-q35-4.0</machine>
      <machine maxCpus='288'>microvm</machine>
      <machine maxCpus='255'>pc-i440fx-2.3</machine>
      <machine maxCpus='255'>pc-1.2</machine>
      <machine maxCpus='255'>pc-i440fx-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.8</machine>
      <machine maxCpus='255'>pc-q35-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-3.0</machine>
      <machine maxCpus='288'>pc-q35-2.11</machine>
      <domain type='qemu'/>
      <domain type='kvm'/>
    </arch>
    <features>
      <pae/>
      <nonpae/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
    </features>
  </guest>

  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <machine maxCpus='255'>pc-i440fx-4.2</machine>
      <machine canonical='pc-i440fx-4.2' maxCpus='255'>pc</machine>
      <machine maxCpus='255'>pc-0.15</machine>
      <machine maxCpus='255'>pc-i440fx-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.0</machine>
      <machine maxCpus='1'>xenpv</machine>
      <machine maxCpus='288'>pc-q35-4.2</machine>
      <machine canonical='pc-q35-4.2' maxCpus='288'>q35</machine>
      <machine maxCpus='255'>pc-i440fx-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-1.5</machine>
      <machine maxCpus='255'>pc-q35-2.7</machine>
      <machine maxCpus='255'>pc-0.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.2</machine>
      <machine maxCpus='255'>pc-1.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.7</machine>
      <machine maxCpus='255'>pc-q35-2.4</machine>
      <machine maxCpus='288'>pc-q35-2.10</machine>
      <machine maxCpus='255'>pc-i440fx-1.7</machine>
      <machine maxCpus='255'>pc-0.14</machine>
      <machine maxCpus='288'>pc-q35-2.9</machine>
      <machine maxCpus='255'>pc-i440fx-2.11</machine>
      <machine maxCpus='288'>pc-q35-3.1</machine>
      <machine maxCpus='288'>pc-q35-4.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.4</machine>
      <machine maxCpus='255'>pc-1.3</machine>
      <machine maxCpus='255'>pc-i440fx-4.1</machine>
      <machine maxCpus='255'>pc-i440fx-2.9</machine>
      <machine maxCpus='1'>isapc</machine>
      <machine maxCpus='255'>pc-i440fx-1.4</machine>
      <machine maxCpus='255'>pc-q35-2.6</machine>
      <machine maxCpus='255'>pc-i440fx-3.1</machine>
      <machine maxCpus='128'>xenfv</machine>
      <machine maxCpus='288'>pc-q35-2.12</machine>
      <machine maxCpus='255'>pc-i440fx-2.1</machine>
      <machine maxCpus='255'>pc-1.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.6</machine>
      <machine maxCpus='288'>pc-q35-4.0.1</machine>
      <machine maxCpus='255'>pc-i440fx-1.6</machine>
      <machine maxCpus='255'>pc-0.13</machine>
      <machine maxCpus='288'>pc-q35-2.8</machine>
      <machine maxCpus='255'>pc-i440fx-2.10</machine>
      <machine maxCpus='288'>pc-q35-3.0</machine>
      <machine maxCpus='288'>pc-q35-4.0</machine>
      <machine maxCpus='288'>microvm</machine>
      <machine maxCpus='255'>pc-i440fx-2.3</machine>
      <machine maxCpus='255'>pc-1.2</machine>
      <machine maxCpus='255'>pc-i440fx-4.0</machine>
      <machine maxCpus='255'>pc-i440fx-2.8</machine>
      <machine maxCpus='255'>pc-q35-2.5</machine>
      <machine maxCpus='255'>pc-i440fx-3.0</machine>
      <machine maxCpus='288'>pc-q35-2.11</machine>
      <domain type='qemu'/>
      <domain type='kvm'/>
    </arch>
    <features>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <cpuselection/>
      <deviceboot/>
      <disksnapshot default='on' toggle='no'/>
    </features>
  </guest>

</capabilities>

Comment 16 Cole Robinson 2019-12-23 18:51:04 UTC
Nothing looks weird in capabilities output. I'm stumped. After the holidays maybe Max or Kevin can discern something from your qemu-img output

Comment 17 Hanna Czenczek 2020-01-06 10:50:46 UTC
There was an upstream report to the same regard:

https://bugs.launchpad.net/qemu/+bug/1857143

Comment 1 of that report links to https://www.redhat.com/archives/libvirt-users/2019-December/msg00016.html, which mentions that this is due to a change in libvirt 5.10 that effectively makes use of the -F flag mandatory for qemu-img create.

-F sets the backing file format.  Without that format set, libvirt apparently now forces the format to be "raw", which renders qcow2 backing images effectively garbage.  (For security reasons; otherwise, a raw image could impersonate a qcow2 image and then let the guest read arbitrary files on the host.)

I still don’t know why I can’t see the problem on my systems.  Perhaps it has to do with the fact that on my Arch system I still have only libguestfs 1.40.2, and on my Fedora (31) system I still have qemu 4.1.1 and libvirt 5.6...

Max

Comment 18 Peter Krempa 2020-01-06 11:11:18 UTC
The change is active only starting from libvirt-5.10, where use of -blockdev was enabled.

Note that it was also fixed upstream by reporting an error if the metadata doesn't contain the backing file format:

commit 3615e8b39badf2a526996a69dc91a92b04cf262e
Author: Peter Krempa <pkrempa>
Date:   Tue Dec 17 17:04:04 2019 +0100

    util: storage: Don't treat files with missing backing store format as 'raw'
    
    Assuming that the backing image format is raw is wrong when doing image
    detection:
    
    1) In -drive mode qemu will still probe the image format of the backing
       image. This means it will try to open a backing file of the image
       which will fail if a more advanced security model is in use.
    
    2) In blockdev mode the image will be opened as raw actually which is
       wrong since it might be qcow. Not opening the backing images will
       also end up in the guest seeing corrupted data.
    
    Rather than attempt to solve various corner cases when us assuming the
    storage file being raw and actually being right forbid startup when the
    guest image doesn't have the format specified in the metadata.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1588373

Comment 19 Cristian Ciupitu 2020-01-09 09:54:31 UTC
(In reply to Max Reitz from comment #17)
> -F sets the backing file format.

Adding -F i.e. running `qemu-img create -f qcow2 -b test.qcow2 -F qcow2 test-clone.qcow2` creates a disk that works fine with the newest versions of both qemu and libvirt.
Thanks for the hint!

Comment 20 Hanna Czenczek 2020-01-09 14:11:28 UTC
(In reply to Cristian Ciupitu from comment #19)
> Adding -F i.e. running `qemu-img create -f qcow2 -b test.qcow2 -F qcow2
> test-clone.qcow2` creates a disk that works fine with the newest versions of
> both qemu and libvirt.

OK, great.  I suppose then that qemu has nothing to do with this problem and this BZ should be moved to libvirt; and I suppose it will be resolved when libvirt emits an error for such images instead of defaulting to raw.  Peter, what’s your opinion?

Max

Comment 21 Hanna Czenczek 2020-01-09 14:12:57 UTC
(Or we can just make it a duplicate of BZ 1588373.)

Comment 22 Peter Krempa 2020-01-09 14:18:58 UTC
I agree. Since it's a fedora bugzilla we should leave it open and move it to post since there's an upstream fix for it (see Comment 18). The resolution then will be either a backport of the patch to 5.10 by fedora maintainers or full upgrade to 6.0 once it's out (should be in a week or so).

Comment 23 Cole Robinson 2020-01-13 18:20:24 UTC
This was filed against F31, but is using versions from virt-preview, which are sourced from rawhide. So this will be fixed when libvirt 6.0.0 is out tomorrow and built for rawhide

Comment 24 Ben Cotton 2020-02-11 17:36:00 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 25 Fedora Update System 2020-03-04 15:03:35 UTC
FEDORA-2020-4a23960367 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-4a23960367

Comment 26 Fedora Update System 2020-03-04 20:15:24 UTC
libvirt-6.1.0-1.fc32 has been pushed to the Fedora 32 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-4a23960367

Comment 27 Fedora Update System 2020-03-16 20:22:20 UTC
libvirt-6.1.0-1.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.

Comment 28 Fedora Update System 2020-03-16 20:33:19 UTC
libvirt-6.1.0-1.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.