Bug 1309741

Summary: rsyslog can't be completely removed due to dependency in libglusterfs
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Peter Czanik <peter>
Component: buildAssignee: Bug Updates Notification Mailing List <rhs-bugs>
Status: CLOSED CURRENTRELEASE QA Contact: Rahul Hinduja <rhinduja>
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: atumball, pvrabec, rhs-bugs, storage-qa-internal
Target Milestone: ---Keywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-20 04:10:28 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: 1310437, 1314571    
Bug Blocks:    

Description Peter Czanik 2016-02-18 15:16:39 UTC
Description of problem:
rsyslog can't be completely removed due to dependency in glusterfs-libs. It depends on rsyslog-mmjsonparse, which remains on the system even if rsyslog is deleted. Three is no direct dependency on rsyslog / mmjsonparse, just an example config: /etc/rsyslog.d/gluster.conf.example
It is a problem, when someone wants to replace rsyslog with an alternative solution, like syslog-ng

Version-Release number of selected component (if applicable):
glusterfs-libs-3.7.1-16.el7.x86_64

How reproducible:
always

Steps to Reproduce:
Try to remove rsyslog-mmjsonparse:

[root@localhost ~]# yum erase rsyslog-mmjsonparse-7.4.7-12.el7.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package rsyslog-mmjsonparse.x86_64 0:7.4.7-12.el7 will be erased
--> Processing Dependency: rsyslog-mmjsonparse for package: glusterfs-libs-3.7.1-16.el7.x86_64
--> Running transaction check
---> Package glusterfs-libs.x86_64 0:3.7.1-16.el7 will be erased
--> Processing Dependency: glusterfs-libs = 3.7.1-16.el7 for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: 10:qemu-kvm-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfrpc.so.0()(64bit) for package: 10:qemu-img-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: 10:qemu-kvm-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libgfxdr.so.0()(64bit) for package: 10:qemu-img-1.5.3-105.el7_2.3.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: libvirt-daemon-driver-storage-1.2.17-13.el7_2.2.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-3.7.1-16.el7.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-client-xlators-3.7.1-16.el7.x86_64
--> Processing Dependency: libglusterfs.so.0()(64bit) for package: glusterfs-api-3.7.1-16.el7.x86_64
--> Running transaction check
---> Package glusterfs.x86_64 0:3.7.1-16.el7 will be erased
---> Package glusterfs-api.x86_64 0:3.7.1-16.el7 will be erased
---> Package glusterfs-client-xlators.x86_64 0:3.7.1-16.el7 will be erased
---> Package libvirt-daemon-driver-storage.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Processing Dependency: libvirt-daemon-driver-storage = 1.2.17-13.el7_2.2 for package: libvirt-daemon-kvm-1.2.17-13.el7_2.2.x86_64
---> Package qemu-img.x86_64 10:1.5.3-105.el7_2.3 will be erased
---> Package qemu-kvm.x86_64 10:1.5.3-105.el7_2.3 will be erased
--> Running transaction check
---> Package libvirt-daemon-kvm.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Processing Dependency: libvirt-daemon-kvm for package: gnome-boxes-3.14.3.1-7.el7.x86_64
--> Running transaction check
---> Package gnome-boxes.x86_64 0:3.14.3.1-7.el7 will be erased
--> Processing Dependency: /usr/bin/qemu-img for package: libvirt-daemon-driver-qemu-1.2.17-13.el7_2.2.x86_64
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package libvirt-daemon-driver-qemu.x86_64 0:1.2.17-13.el7_2.2 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================
 Package                                                Arch                            Version                                        Repository                                        Size
==============================================================================================================================================================================================
Removing:
 rsyslog-mmjsonparse                                    x86_64                          7.4.7-12.el7                                   @rhel-7-server-eus-rpms                           15 k
Removing for dependencies:
 glusterfs                                              x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          1.6 M
 glusterfs-api                                          x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          141 k
 glusterfs-client-xlators                               x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          3.2 M
 glusterfs-libs                                         x86_64                          3.7.1-16.el7                                   @rhel-7-server-eus-rpms                          1.1 M
 gnome-boxes                                            x86_64                          3.14.3.1-7.el7                                 @rhel-7-server-eus-rpms                          4.3 M
 libvirt-daemon-driver-qemu                             x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          1.3 M
 libvirt-daemon-driver-storage                          x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          549 k
 libvirt-daemon-kvm                                     x86_64                          1.2.17-13.el7_2.2                              @rhel-7-server-eus-rpms                          0.0  
 qemu-img                                               x86_64                          10:1.5.3-105.el7_2.3                           @rhel-7-server-eus-rpms                          2.2 M
 qemu-kvm                                               x86_64                          10:1.5.3-105.el7_2.3                           @rhel-7-server-eus-rpms                          5.6 M

Transaction Summary
==============================================================================================================================================================================================
Remove  1 Package (+10 Dependent packages)

Installed size: 20 M
Is this ok [y/N]: n


Actual results:
Not just rsyslog-mmjsonparse, but the whole kvm virtualization stack is also removed in the action.

Expected results:
If we erase rsyslog-mmjsonparse, it does not take any other software with it. For that rsyslog-mmjsonparse should not be among the requires of glusterfs-libs, like it is now:

[root@localhost ~]# rpm -q --requires glusterfs-libs
/bin/sh
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgfrpc.so.0()(64bit)
libgfxdr.so.0()(64bit)
libglusterfs.so.0()(64bit)
libm.so.6()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libz.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rsyslog-mmjsonparse
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1



Additional info:

If needed, I can also provide a sample syslog-ng configuration for JSON parsing.

(On CentOS it's even worse, as rsyslog-mmjsonparse also depends on rsyslog, so rsyslog practically can't be deleted at all)

Comment 2 Tomas Heinrich 2016-02-18 16:46:23 UTC
From the point of rsyslog, I think this dependency is unnecessary;
The file is just an example and not used by default. The only requirement for the rsyslog package is to have the /etc/rsyslog.d/ dir where the file is currently installed.

I think it'd be better to move the file somewhere into /usr/share/..., add another example for syslog-ng and add instructions to install the respective packages.

Comment 3 Amar Tumballi 2018-02-05 09:27:24 UTC
Nothing in glusterfs core for this bug. More of a build / packaging part?

Comment 4 Amar Tumballi 2018-11-20 04:10:28 UTC
These are fixed as part of RHGS 3.3