Bug 1683574

Summary: gluster-server package currently requires the older userspace-rcu against expectation
Product: [Community] GlusterFS Reporter: SATHEESARAN <sasundar>
Component: buildAssignee: bugs <bugs>
Status: CLOSED NOTABUG QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 6CC: bugs, guillaume.pavese, kkeithle
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: gluster-test-day
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-03-04 14:44:14 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: 1672818, 1732875    

Description SATHEESARAN 2019-02-27 09:21:33 UTC
Description of problem:
------------------------
While installing glusterfs-server-6.0 package on Centos 6, observed that this glusterfs-server requires liburcu-bp.so.1, but Centos-release-gluster  ships the latest version of liburcu-bp.so.6 ( updated as part of https://bugzilla.redhat.com/show_bug.cgi?id=1410302 )

Version-Release number of selected component (if applicable):
-------------------------------------------------------------
Centos-7.6
glusterfs-server-6.0

How reproducible:
-----------------
Always

Steps to Reproduce:
-------------------
1. Install glusterfs-server-6.0 on Centos 7.6

Actual results:
---------------
Installation fails with dependency on liburcu-bp.so.1, though liburcu-bp.so.6 is available

Expected results:
-----------------
glusterfs-server should require newer updated version of liburcu-bp.so.6


Additional info:
----------------
[root@ ~]# rpm -qpR glusterfs-server-5.3-2.el7.x86_64.rpm | grep -i rcu
liburcu-bp.so.6()(64bit)
liburcu-cds.so.6()(64bit)

[root@ ~]# rpm -qpR glusterfs-server-6.0-0.1.rc0.el7.x86_64.rpm | grep -i rcu
warning: glusterfs-server-6.0-0.1.rc0.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID c2f8238c: NOKEY
liburcu-bp.so.1()(64bit)
liburcu-cds.so.1()(64bit)

Comment 1 Kaleb KEITHLEY 2019-03-04 14:30:06 UTC
The glusterfs-server-6.0-0.1.rc0.el7.x86_64.rpm on https://buildlogs.centos.org/centos/7/storage/x86_64/gluster-6/ gives me this:

]$ rpm -qpR glusterfs-server-6.0-0.1.rc0.el7.x86_64.rpm| grep rcu
liburcu-bp.so.6()(64bit)
liburcu-cds.so.6()(64bit)

(And the packages haven't been tagged for release yet so there isn't a glusterfs-server-6.0-0.1.rc0.el7.x86_64.rpm on http://mirror.centos.org/centos-7/7/storage/x86_64/gluster-6/ yet.)

And the glusterfs.spec file has
  BuildRequires:    userspace-rcu-devel >= 0.7
so any of a wide range of userspace-rcu packages/libs could potentially satisfy the BuildRequires.

Where did you get your RPMs from?  The Storage SIG builds its own userspace-rcu package because what's in RHEL/CentOS is too old.

If you're building your own RPMs on your CentOS 7 box and haven't installed the userspace-rcu* RPMs from the Storage SIG then that's probably why your RPMs have the incorrect dependency on liburcu-bp.so.1 instead of liburcu-bp.so.6.

The BuildRequires in the .spec should probably be updated to >= 0.10 to prevent this from happening in the future.

Comment 2 Kaleb KEITHLEY 2019-03-04 14:44:14 UTC
(In reply to Kaleb KEITHLEY from comment #1)
> 
> The BuildRequires in the .spec should probably be updated to >= 0.10 to
> prevent this from happening in the future.

s/should/could/

Since any version of userspace-rcu(-devel) >= 0.7, i.e. liburcu-bp.so.0.1 or later, is acceptable, it's not incorrect, to build with the older version.

But if you want to build yours with the latest version, you need to install it from the Storage SIG.