[CentOS-devel] [EXT] Re: Re: Qemu VS GlusterFS - liburing rpm conlisions

Wed Jun 28 10:10:19 UTC 2023
Peter Georg <peter.georg at physik.uni-regensburg.de>

On 09/06/2023 17.12, Niels de Vos wrote:
> On Fri, 2023-06-09 at 16:18 +0200, Peter Georg wrote:
>>
>>
>> On 09/06/2023 15.17, Niels de Vos wrote:
>>> On Fri, 2023-06-09 at 13:03 +0200, lejeczek via CentOS-devel wrote:
>>>>
>>>>
>>>> On 01/06/2023 14:46, Niels de Vos wrote:
>>>>> On Thu, 2023-06-01 at 09:51 +0200, lejeczek via CentOS-devel
>>>>> wrote:
>>>>>>
>>>>>> On 31/05/2023 20:30, Troy Dawson wrote:
>>>>>>> Just to be clear, this is the glusterfs from the glusterfs
>>>>>>> SIG,
>>>>>>> not the gluster that comes standard with CentOS Stream 9.
>>>>>>>
>>>>>>>
>>>>>>> On Wed, May 31, 2023 at 12:30 AM lejeczek via CentOS-devel
>>>>>>> <centos-devel at centos.org> wrote:
>>>>>>>
>>>>>>>        Hi guys.
>>>>>>>        Just to let you know that with GlusterFS & latest
>>>>>>> qemu
>>>>>>>        updates - on Centos 9 I'd image most will have these
>>>>>>> -
>>>>>>>        there are conflicts which brake update:
>>>>>>>
>>>>>>>        -> $ dnf update
>>>>>>>
>>>>>>>        Error:
>>>>>>>         Problem 1: package qemu-img-17:8.0.0-4.el9.x86_64
>>>>>>>        from appstream requires liburing.so.1()(64bit), but
>>>>>>>        none of the providers can be installed
>>>>>>>          - package qemu-img-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.1)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - package qemu-img-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.2)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from @System
>>>>>>>          - cannot install the best update candidate for
>>>>>>>        package qemu-img-17:8.0.0-2.el9.x86_64
>>>>>>>          - cannot install the best update candidate for
>>>>>>>        package liburing-2.0-1.el9s.x86_64
>>>>>>>         Problem 2: package
>>>>>>>        glusterfs-server-11.0-1.el9s.x86_64 from @System
>>>>>>>        requires liburing.so.2()(64bit), but none of the
>>>>>>>        providers can be installed
>>>>>>>          - package glusterfs-server-11.0-1.el9s.x86_64 from
>>>>>>>        @System requires liburing.so.2(LIBURING_2.0)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from @System
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from
>>>>>>>        centos-gluster11
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from
>>>>>>>        centos-gluster11-test
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires liburing.so.1()(64bit), but none
>>>>>>> of
>>>>>>>        the providers can be installed
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.1)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.2)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - cannot install the best update candidate for
>>>>>>>        package qemu-kvm-core-17:8.0.0-2.el9.x86_64
>>>>>>>          - cannot install the best update candidate for
>>>>>>>        package glusterfs-server-11.0-1.el9s.x86_64
>>>>>>>         Problem 3: problem with installed package
>>>>>>>        liburing-2.0-1.el9s.x86_64
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from @System
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from
>>>>>>>        centos-gluster11
>>>>>>>          - cannot install both liburing-0.7-7.el9.x86_64
>>>>>>> from
>>>>>>>        appstream and liburing-2.0-1.el9s.x86_64 from
>>>>>>>        centos-gluster11-test
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires liburing.so.1()(64bit), but none
>>>>>>> of
>>>>>>>        the providers can be installed
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.1)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - package qemu-kvm-core-17:8.0.0-4.el9.x86_64 from
>>>>>>>        appstream requires
>>>>>>> liburing.so.1(LIBURING_0.2)(64bit),
>>>>>>>        but none of the providers can be installed
>>>>>>>          - problem with installed package
>>>>>>>        qemu-kvm-core-17:8.0.0-2.el9.x86_64
>>>>>>>          - package qemu-kvm-core-17:8.0.0-2.el9.x86_64 from
>>>>>>>        @System requires qemu-kvm-common = 17:8.0.0-2.el9,
>>>>>>> but
>>>>>>>        none of the providers can be installed
>>>>>>>          - package qemu-kvm-core-17:8.0.0-2.el9.x86_64 from
>>>>>>>        appstream requires qemu-kvm-common = 17:8.0.0-2.el9,
>>>>>>>        but none of the providers can be installed
>>>>>>>          - cannot install both
>>>>>>>        qemu-kvm-common-17:8.0.0-4.el9.x86_64 from appstream
>>>>>>>        and qemu-kvm-common-17:8.0.0-2.el9.x86_64 from
>>>>>>> @System
>>>>>>>          - cannot install both
>>>>>>>        qemu-kvm-common-17:8.0.0-4.el9.x86_64 from appstream
>>>>>>>        and qemu-kvm-common-17:8.0.0-2.el9.x86_64 from
>>>>>>> appstream
>>>>>>>          - cannot install the best update candidate for
>>>>>>>        package qemu-kvm-common-17:8.0.0-2.el9.x86_64
>>>>>>>        (try to add '--allowerasing' to command line to
>>>>>>>        replace conflicting packages or '--skip-broken' to
>>>>>>>        skip uninstallable packages or '--nobest' to use not
>>>>>>>        only best candidate packages)
>>>>>>>
>>>>>>>        many thanks, L.
>>>>>>>        _______________________________________________
>>>>>>>
>>>>>> Yes, from SIG.
>>>>>> centos-release-gluster11-1.0-1.el9s.noarch
>>>>> liburing.so.1(LIBURING_0.1)(64bit) - needed by qemu
>>>>> liburing.so.2(LIBURING_2.0)(64bit) - needed by glusterfs
>>>>>
>>>>> I guess liburing was not available in earlier versions, and was
>>>>> therefore added to the gluster repository. We'll have to remove
>>>>> the
>>>>> gluster version and rebuild the package against the liburing
>>>>> version
>>>>> that is now part of CentOS Stream 9.
>>>>>
>>>>> The gluster repository seems to have a newer liburing version,
>>>>> which
>>>>> makes it difficult to downgrade to the appstream version for
>>>>> users
>>>>> that
>>>>> have the glusterfs-server package installed. Users in this
>>>>> situation
>>>>> may need to add --allowerasing while updating to the a rebuild
>>>>> of
>>>>> the
>>>>> glusterfs package.
>>>>>
>>>>> Does anyone have an idea on how this can be handled best?
>>>>>
>>>>> Thanks,
>>>>> Niels
>>>>>
>>>> Do you/devel guys (or anybody) have any fix ready to go into
>>>> the pipelines?
>>>> It'd good to know before I, rest of us, begin tinkering with
>>>> qemu & glusterfs.
>>>
>>> liburing-devel does not seem to be available in the buildroot that
>>> is
>>> configured for Gluster. Untagging the liburing-2 package causes
>>> builds
>>> to fail as it can not be installed.
>>
>> liburing-devel corresponding to the liburing version in appstream is
>> available in EPEL. However, EPEL is not enabled for
>> storage9s-gluster-11-el9s.
>>
> 
> Thanks for the info! If the EPEL version is compatible, it makes sense
> to get it added to the buildroot.
> 
>>> I am currently tending towards building glusterfs without liburing
>>> support. Maybe it makes sense to have the appstream(-devel?)
>>> repository
>>> included for the gluster buildroots, but I am not sure about that.
> 
> The above is what I'm making available in the ..-test repositories for
> CentOS Stream 11 & 10. Performance might be a little lower without
> liburing, but at least there are no conflicts when installing the
> packages next to QEMU. Test results are very welcome!
> 
>>> What do others think about this?
>>
>> Not directly related, but assuming you use liburing by utilizing EPEL
>> and at the same time also drop other dependencies from
>> storage9s-gluster-11-el9s which are satisfied by EPEL, the resulting
>> glusterfs rpms might actually end up being the very similar to what
>> we
>> currently provide for EL, i.e., in storage9-gluster-11-el9. The
>> glusterfs packages provided for EL do not suffers from these liburing
>> conflicts. Obviously these are build using RHEL build roots, but very
>> likely will work on Stream as well.
> 
> I like the idea, but it will still cause issues for users that are
> updating and have liburing-2.x installed. Maybe the package gets
> removed when glusterfs-server does not depend on liburing anymore? That
> would make a clean path for updating to a new version with liburing
> from EPEL at one point.

liburing has been updated to 2.3 in CentOS Stream. So we now have a 
clean path for updating as users who have liburing-2.0 (provided by the 
storage SIG) installed will be updated to 2.3 as well. At some point you 
might want to rebuild glusterfs with liburing enabled targeting the new 
version now included in CentOS Stream.

In addition liburing-devel-2.3 is available in the CRB repository this 
time. Which also means that liburing-epel [1] should be retired once 
RHEL 9.3 (or whichever version will include liburing-2.3) has been released.

[1]: https://src.fedoraproject.org/rpms/liburing-epel

> 
> Thanks,
> Niels
> 
> _______________________________________________
> CentOS-devel mailing list
> CentOS-devel at centos.org
> https://lists.centos.org/mailman/listinfo/centos-devel