Bug 1296931 - Installation of glusterfs-3.6.8 fails on CentOS-7
Installation of glusterfs-3.6.8 fails on CentOS-7
Status: CLOSED CURRENTRELEASE
Product: GlusterFS
Classification: Community
Component: build (Show other bugs)
3.6.8
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Niels de Vos
: Triaged
Depends On: 1296992
Blocks:
  Show dependency treegraph
 
Reported: 2016-01-08 08:23 EST by Niels de Vos
Modified: 2016-03-04 10:57 EST (History)
3 users (show)

See Also:
Fixed In Version: glusterfs-glusterfs-3.6.9
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1296992 (view as bug list)
Environment:
Last Closed: 2016-03-04 10:29:44 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Niels de Vos 2016-01-08 08:23:25 EST
Description of problem:
CentOS-7 comes with glusterfs-3.7.x in the base/updates repository. This seems to make it impossible to install glusterfs-3.6.x.

Version-Release number of selected component (if applicable):
3.6.8 (but earlier as well)

How reproducible:
100%

Steps to Reproduce:
1. Install a minimal CentOS-7 system
2. Download the packages from http://cbs.centos.org/koji/buildinfo?buildID=8205
3. Install the packages

Actual results:
...
---> Package glusterfs-server.x86_64 0:3.6.6-1.el7 will be installed
--> Processing Dependency: glusterfs-libs = 3.6.6-1.el7 for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: glusterfs-fuse = 3.6.6-1.el7 for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: glusterfs-cli = 3.6.6-1.el7 for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: glusterfs = 3.6.6-1.el7 for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: rpcbind for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: psmisc for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: nfs-utils for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libgfapi.so.0(GFAPI_PRIVATE_3.4.0)(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libgfapi.so.0(GFAPI_3.4.0)(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
--> Processing Dependency: libgfapi.so.0()(64bit) for package: glusterfs-server-3.6.6-1.el7.x86_64
...
---> Package glusterfs.x86_64 0:3.6.6-1.el7 will be installed
---> Package glusterfs-api.x86_64 0:3.7.1-16.el7 will be installed
--> Processing Dependency: glusterfs-client-xlators = 3.7.1-16.el7 for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Processing Dependency: glusterfs = 3.7.1-16.el7 for package: glusterfs-api-3.7.1-16.el7.x86_64
---> Package glusterfs-cli.x86_64 0:3.6.6-1.el7 will be installed
---> Package glusterfs-fuse.x86_64 0:3.6.6-1.el7 will be installed
--> Processing Dependency: glusterfs = 3.6.6-1.el7 for package: glusterfs-fuse-3.6.6-1.el7.x86_64
...
---> Package glusterfs-libs.x86_64 0:3.6.6-1.el7 will be installed
...
--> Running transaction check
...
---> Package glusterfs.x86_64 0:3.6.6-1.el7 will be installed
--> Processing Dependency: glusterfs = 3.6.6-1.el7 for package: glusterfs-fuse-3.6.6-1.el7.x86_64
--> Processing Dependency: glusterfs = 3.6.6-1.el7 for package: glusterfs-server-3.6.6-1.el7.x86_64
---> Package glusterfs.x86_64 0:3.7.1-16.el7 will be installed
--> Processing Dependency: glusterfs-libs = 3.7.1-16.el7 for package: glusterfs-3.7.1-16.el7.x86_64
---> Package glusterfs-client-xlators.x86_64 0:3.7.1-16.el7 will be installed
---> Package glusterfs-fuse.x86_64 0:3.6.6-1.el7 will be installed
--> Processing Dependency: glusterfs = 3.6.6-1.el7 for package: glusterfs-fuse-3.6.6-1.el7.x86_64
...
--> Finished Dependency Resolution
Error: Package: glusterfs-server-3.6.6-1.el7.x86_64 (centos-gluster36)
           Requires: glusterfs = 3.6.6-1.el7
           Available: glusterfs-3.6.6-1.el7.x86_64 (centos-gluster36)
               glusterfs = 3.6.6-1.el7
           Installing: glusterfs-3.7.1-16.el7.x86_64 (base)
               glusterfs = 3.7.1-16.el7
Error: Package: glusterfs-cli-3.6.6-1.el7.x86_64 (centos-gluster36)
           Requires: glusterfs-libs = 3.6.6-1.el7
           Available: glusterfs-libs-3.6.6-1.el7.x86_64 (centos-gluster36)
               glusterfs-libs = 3.6.6-1.el7
           Installing: glusterfs-libs-3.7.1-16.el7.x86_64 (base)
               glusterfs-libs = 3.7.1-16.el7
Error: Package: glusterfs-fuse-3.6.6-1.el7.x86_64 (centos-gluster36)
           Requires: glusterfs = 3.6.6-1.el7
           Available: glusterfs-3.6.6-1.el7.x86_64 (centos-gluster36)
               glusterfs = 3.6.6-1.el7
           Installing: glusterfs-3.7.1-16.el7.x86_64 (base)
               glusterfs = 3.7.1-16.el7
 You could try using --skip-broken to work around the problem
Error: Package: glusterfs-server-3.6.6-1.el7.x86_64 (centos-gluster36)
           Requires: glusterfs-libs = 3.6.6-1.el7
           Available: glusterfs-libs-3.6.6-1.el7.x86_64 (centos-gluster36)
               glusterfs-libs = 3.6.6-1.el7
           Installing: glusterfs-libs-3.7.1-16.el7.x86_64 (base)
               glusterfs-libs = 3.7.1-16.el7
 You could try running: rpm -Va --nofiles --nodigest

Expected results:
Installation succeeds.

Additional info:
Hooraay for CentOS CI!
Comment 1 Niels de Vos 2016-01-08 08:27:30 EST
I suspect that the problem is caused by these automatically generated dependencies:

libgfapi.so.0(GFAPI_PRIVATE_3.4.0)(64bit)
libgfapi.so.0(GFAPI_3.4.0)(64bit)
libglusterfs.so.0()(64bit)
libgfxdr.so.0()(64bit)
libgfrpc.so.0()(64bit)
libgfapi.so.0()(64bit)

glusterfs-server depends on all these. The installation problem can probably be prevented when glusterfs-server only has versioned dependencies on the glusterfs-libs and glusterfs-api packages. The dependency resolver might want to install the latest version of a package that provides the requirements.
Comment 2 Kaleb KEITHLEY 2016-01-08 09:15:35 EST
Okay, but...

I believe that many of us understand that to install 3.6.x, by definition you must first uninstall the existing 3.7.x bits that are included as part of base CentOS (and RHEL.)

Given that, is this really a bug?

Is it really possible, other than with some serious hack, to make a seamless 3.6.x install?

Can we solve this with (better) documentation?
Comment 3 Niels de Vos 2016-01-08 09:40:13 EST
(In reply to Kaleb KEITHLEY from comment #2)
> Okay, but...
> 
> I believe that many of us understand that to install 3.6.x, by definition
> you must first uninstall the existing 3.7.x bits that are included as part
> of base CentOS (and RHEL.)
> 
> Given that, is this really a bug?

Yes, because this happens when there are no glusterfs packages installed. The recent updates for CentOS-7 started to provide glusterfs-3.7.x (like RHEL-7.2). Before the 3.6.x versions from the Storage SIG were newer than the base/update packages from CentOS/RHEL. This has changed.

> Is it really possible, other than with some serious hack, to make a seamless
> 3.6.x install?

We already exclude some automatically generated provides/requirements for some parts. I think we should be able to do so for the libraries in glusterfs-libs too.

Alternatively the packages in the Storage SIG could use an epoch, so that they will always be considered newer than the CentOS/RHEL packages.

> Can we solve this with (better) documentation?

I doubt it, it will make installing more difficult.
Comment 4 Vijay Bellur 2016-01-08 11:28:17 EST
REVIEW: http://review.gluster.org/13201 (rpm: glusterfs-server requires -api) posted (#1) for review on release-3.6 by Niels de Vos (ndevos@redhat.com)
Comment 5 Vijay Bellur 2016-01-26 17:35:33 EST
COMMIT: http://review.gluster.org/13201 committed in release-3.6 by Raghavendra Bhat (raghavendra@redhat.com) 
------
commit b73e870ef587a9bae83fafb424d0dc3a972f5727
Author: Niels de Vos <ndevos@redhat.com>
Date:   Fri Jan 8 16:43:15 2016 +0100

    rpm: glusterfs-server requires -api
    
    The glusterfs-server package requires libgfapi.so for the glfs-heal
    binary and possibly other parts.
    
    Also adding %{?_isa} to requirements as described in the Fedora
    Packaging Guidelines for Explicit Requires at
    https://fedoraproject.org/wiki/Packaging:Guidelines#Explicit_Requires
    
    This is a backport of:
    > BUG: 1296992
    > Change-Id: I96c62876b776d04a7f5d1b1dc34c02302b6ffbe6
    > Reviewed-on: http://review.gluster.org/13200
    > Signed-off-by: Niels de Vos <ndevos@redhat.com>
    
    BUG: 1296931
    Change-Id: I96c62876b776d04a7f5d1b1dc34c02302b6ffbe6
    Signed-off-by: Niels de Vos <ndevos@redhat.com>
    Reviewed-on: http://review.gluster.org/13201
    Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
    Smoke: Gluster Build System <jenkins@build.gluster.com>
    CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
    Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Comment 6 Raghavendra Bhat 2016-03-04 10:57:40 EST
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-glusterfs-3.6.9, please open a new bug report.

glusterfs-glusterfs-3.6.9 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://www.gluster.org/pipermail/gluster-devel/2016-March/048584.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user

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