qemu fails to rebuild in rawhide, seems like glusterfs related issues, using 6.0-0.1.rc0.fc31 https://koji.fedoraproject.org/koji/taskinfo?taskID=33109555 https://kojipkgs.fedoraproject.org//work/tasks/9555/33109555/build.log A few example errors below. Any idea what's going on here? BUILDSTDERR: /builddir/build/BUILD/qemu-3.1.0/block/gluster.c: In function 'qemu_gluster_co_pwrite_zeroes': BUILDSTDERR: /builddir/build/BUILD/qemu-3.1.0/block/gluster.c:994:52: warning: passing argument 4 of 'glfs_zerofill_async' from incompatible pointer type [-Wincompatible-pointer-types] BUILDSTDERR: 994 | ret = glfs_zerofill_async(s->fd, offset, size, gluster_finish_aiocb, &acb); BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~ BUILDSTDERR: | | BUILDSTDERR: | void (*)(struct glfs_fd *, ssize_t, void *) {aka void (*)(struct glfs_fd *, long int, void *)} BUILDSTDERR: In file included from /builddir/build/BUILD/qemu-3.1.0/block/gluster.c:12: BUILDSTDERR: /usr/include/glusterfs/api/glfs.h:993:73: note: expected 'glfs_io_cbk' {aka 'void (*)(struct glfs_fd *, long int, struct glfs_stat *, struct glfs_stat *, void *)'} but argument is of type 'void (*)(struct glfs_fd *, ssize_t, void *)' {aka 'void (*)(struct glfs_fd *, long int, void *)'} BUILDSTDERR: 993 | glfs_zerofill_async(glfs_fd_t *fd, off_t length, off_t len, glfs_io_cbk fn, BUILDSTDERR: | ~~~~~~~~~~~~^~ BUILDSTDERR: /builddir/build/BUILD/qemu-3.1.0/block/gluster.c: In function 'qemu_gluster_do_truncate': BUILDSTDERR: /builddir/build/BUILD/qemu-3.1.0/block/gluster.c:1035:13: error: too few arguments to function 'glfs_ftruncate' BUILDSTDERR: 1035 | if (glfs_ftruncate(fd, offset)) {
Nope. It's not a bug in glusterfs. qemu needs to fix its call to glfs_ftruncate() to add the missing parameter. GlusterFS uses versioned symbols in libgfapi. Old programs compiled & linked against an older libgfapi.so will continue to work with a new libgfapi.so, but when (re)compiling with the new library you have to keep up with the API changes. I will be closing this aa NOTABUG in a few days.
So glusterfs is intentionally breaking API ? That is really unpleasant behaviour as it means all existing releases of QEMU are broken with latest glusterfs. Would be much better to just add glfs_ftruncate2() alongside the existing API if it needed extra parameters to avoid needlessly breaking applications.
GlusterFS is intentionally following the design decisions that were taken several years ago and well publicized at the time. Namely that the API will not be bloated with multiple versions of functions like foo(), foo2(), ... foo27(). The ABI is maintained with versioned symbols. No promise was ever made or implied WRT the API. The alternative was that the SO_VERSION/SO_NAME was going to be bumped every time the API changed. Doing that breaks both the API and the ABI. That's even more unpleasant for existing releases of QEMU and all the other users of gfapi. If you're unhappy with this, I suggest taking this up with the GlusterFS community by opening a BZ against Gluster itself (https://bugzilla.redhat.com/enter_bug.cgi?product=GlusterFS) or by sending email to devel.
I'm struggling to even get a rawhide setup with latest glusterfs installed, it's dependent on new readline as part of a huge rebuild but none of the packages seem to be in any stock fedora repos. So I'm disabling qemu gluster bits for now just to get something building: lack of qemu is blocking someones compose, I'm getting mails about it
Igor, I can't install this on f30 either, due to dnf is still compiled with readline-7. Any idea when dnf will be recompiled with readline-8? Thanks
What exactly depends on readline-7? Can you post more information? Every critical component was rebuilt with readline-8.
dnf. dnf requires readline-7.0. See comment 5. You built readline-8.0 in f30 on 17 Feb., but the latest build of dnf in f30 was by pkratoch on 13 Feb. Also lvm2 requires readline-7.0. Is there something borked in the f30/rawhide repos? I've been running this f30/rawhide box for a while now and updating it frequently.I am not the only one experiencing this, see comment 4. (My build of glusterfs-6.0-0.1.rc0 on f30 was built on 1 Mar. with readline-8.0) On my f30/rawhide box: $ rpm -q readline readline-7.0-13.fc30.x86_64 $ sudo dnf update -y readline Last metadata expiration check: 1:56:08 ago on Tue 05 Mar 2019 06:06:46 AM EST. Dependencies resolved. Nothing to do. Complete! $sudo dnf update --allowerasing -y readline-8.0-2.fc30.x86_64.rpm Dependencies resolved. Problem: The operation would result in removing the following protected packages: dnf ==================================================================================== Package Architecture Version Repository Size ==================================================================================== Skipping packages with conflicts: (add '--best' to command line to force their upgrade): readline x86_64 8.0-2.fc30 @commandline 191 k Transaction Summary ==================================================================================== Skip 1 Package Nothing to do. Complete! and even: $ sudo dnf update --allowerasing --best -y readline-8.0-2.fc30.x86_64.rpm Last metadata expiration check: 2:08:56 ago on Tue 05 Mar 2019 06:06:46 AM EST. Error: Problem: The operation would result in removing the following protected packages: dnf (try to add '--skip-broken' to skip uninstallable packages) All this because (after manually downloading gluster rpms because dnf is not seeing them in the repo): $ sudo dnf install -y glusterfs*-6.0-0.1.rc0.fc30.x86_64.rpm python3-gluster-6.0-0.1.rc0.fc30.x86_64.rpm Last metadata expiration check: 2:12:06 ago on Tue 05 Mar 2019 06:06:46 AM EST. Error: Problem 1: conflicting requests - nothing provides libreadline.so.8()(64bit) needed by glusterfs-cli-6.0-0.1.rc0.fc30.x86_64 Problem 2: conflicting requests - nothing provides libreadline.so.8()(64bit) needed by glusterfs-server-6.0-0.1.rc0.fc30.x86_64 (try to add '--skip-broken' to skip uninstallable packages) or (after also manually downloading readline-8.0 because dnf is also not seeing it in the repo, see above): $ sudo dnf install --allowerasing -y glusterfs*-6.0-0.1.rc0.fc30.x86_64.rpm python3-gluster-6.0-0.1.rc0.fc30.x86_64.rpm readline-8.0-2.fc30.x86_64.rpm Last metadata expiration check: 2:14:45 ago on Tue 05 Mar 2019 06:06:46 AM EST. Error: Problem 1: package glusterfs-server-6.0-0.1.rc0.fc30.x86_64 requires lvm2, but none of the providers can be installed - package lvm2-2.02.183-2.fc30.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed - cannot install both readline-8.0-2.fc30.x86_64 and readline-7.0-13.fc30.x86_64 - conflicting requests Problem 2: python3-3.7.2-6.fc30.i686 has inferior architecture - package python3-gluster-6.0-0.1.rc0.fc30.x86_64 requires python3, but none of the providers can be installed - package python3-gluster-6.0-0.1.rc0.fc30.x86_64 requires python(abi) = 3.7, but none of the providers can be installed - package python3-3.7.2-6.fc30.x86_64 requires libpython3.7m.so.1.0()(64bit), but none of the providers can be installed - package python3-3.7.2-6.fc30.x86_64 requires python3-libs(x86-64) = 3.7.2-6.fc30, but none of the providers can be installed - package python3-libs-3.7.2-6.fc30.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed - cannot install both readline-8.0-2.fc30.x86_64 and readline-7.0-13.fc30.x86_64 - package glusterfs-cli-6.0-0.1.rc0.fc30.x86_64 requires libreadline.so.8()(64bit), but none of the providers can be installed - conflicting requests (try to add '--skip-broken' to skip uninstallable packages)
> - package python3-libs-3.7.2-6.fc30.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed This is the key here. But this one was built with new readline -- python3-3.7.2-7.fc30. --- Which repos do you use?
fedora-rawhide[rawhide] (and fedora-rawhide-modular) as installed when I originally installed this f30/rawhide box. I've tried enabling fedora-updates and fedora-updates-testing; no diff
There was no successful compose since then. You can use koji repo: [koji] name=Koji $releasever - $basearch baseurl=https://kojipkgs.fedoraproject.org/repos/f$releasever-build/latest/$basearch/ enabled=1 metadata_expire=1h gpgcheck=0
That works. Thanks.
Patches have been posted: https://lists.nongnu.org/archive/html/qemu-block/2019-03/msg00083.html
*** Bug 1684500 has been marked as a duplicate of this bug. ***
Patches have been merged in upstream QEMU: - https://git.qemu.org/?p=qemu.git;a=commit;h=e014dbe74e0484188164c61ff6843f8a04a8cb9d - https://git.qemu.org/?p=qemu.git;a=commit;h=0e3b891fefacc0e49f3c8ffa3a753b69eb7214d2
Rawhide has these patches now, as does the pending f30 update, so closing