Bug 1872918

Summary: Btrfs commands don't work when using user-space emulation of other architectures
Product: [Fedora] Fedora Reporter: Neal Gompa <ngompa13>
Component: qemuAssignee: Fedora Virtualization Maintainers <virt-maint>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 33CC: berrange, cfergeau, crobinso, davide, fzatlouk, itamar, ngompa13, ondrejj, pbonzini, philmd, rjones, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: qemu-5.1.0-5.fc33 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-08 17:04:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1766776    

Description Neal Gompa 2020-08-26 22:33:02 UTC
Description of problem:
When doing cross-arch builds with mock, it uses qemu-user-static under the hood, and qemu-user-static lacks support for Btrfs ioctls to emulate so that btrfs(8) commands work correctly.

This is especially important for being able to do cross-arch image builds.

Version-Release number of selected component (if applicable):
5.1.0-2.fc33

How reproducible:
Always

Steps to Reproduce:

$ sudo dnf install mock qemu-user-static wget
$ sudo usermod -a -G mock $USER
$ newgrp mock
$ mock --root fedora-rawhide-armhfp --install btrfs-progs util-linux
$ mock --root fedora-rawhide-armhfp --chroot 'rm -f foo.img && dd if=/dev/zero of=foo.img bs=1G count=1 && losetup /dev/loop9 foo.img &&  mkfs.btrfs /dev/loop9 && mkdir /foo && mount /dev/loop9 /foo && btrfs subvol create /foo/subvol && umount /foo && losetup -d /dev/loop9'


Actual results:
Fails with errors like "ERROR: cannot create subvolume: Function not implemented"

Expected results:
Succeeds and creates subvolumes properly.

Additional info:
There is a patch series from a few days ago to add support for many btrfs ioctls

https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg05594.html

Comment 1 Cole Robinson 2020-08-31 13:40:57 UTC
Thanks for the report. Neal can you file this with upstream qemu? It has a better chance of being seen by the relevant devs that way: https://launchpad.net/qemu

Comment 2 Neal Gompa 2020-08-31 14:52:48 UTC
Sure, I copy-pasta'd it to Launchpad, though I don't know whether that would really help anything...

Comment 3 Fedora Update System 2020-09-07 16:13:36 UTC
FEDORA-2020-9199d20f3f has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-9199d20f3f

Comment 4 Fedora Blocker Bugs Application 2020-09-07 19:25:51 UTC
Proposed as a Freeze Exception for 33-beta by Fedora user ngompa using the blocker tracking app because:

 This makes it so that emulated foreign architecture image builds work for our desktop variant image builds.

Comment 5 Fedora Update System 2020-09-07 21:45:14 UTC
FEDORA-2020-9199d20f3f has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-9199d20f3f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-9199d20f3f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 FrantiĊĦek Zatloukal 2020-09-08 08:08:01 UTC
Setting as AcceptedFreezeException per voting: https://pagure.io/fedora-qa/blocker-review/issue/68

Comment 7 Fedora Update System 2020-09-08 17:04:45 UTC
FEDORA-2020-9199d20f3f has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.