Bug 1312201

Summary: [SPEC] systemd should require glib2 ?
Product: Red Hat Enterprise Linux 7 Reporter: Ashish Shah <ashishks>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Branislav Blaškovič <bblaskov>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: ayadav, bblaskov, jscotka, lnykryn, masanari.iida, msekleta, systemd-maint-list, vchoudha
Target Milestone: rcKeywords: EasyFix, Regression, Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-219-21.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-04 00:52:24 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: 1289485    

Description Ashish Shah 2016-02-26 05:14:13 UTC
Description of problem:

GNOME session fails to start after upgrade of kernel on rhel7.0 or rhel7.1
gnome-shell fails to start with below message after upgrade of kernel to RHEL7.2 level (kernel-3.10.0-327.10.1.el7) 
---
Oh no! Something has gone wrong
---
Symbol lookup error for g_type_class_adjust_private_offset observed in messages logs
---
gnome-session: /usr/bin/gnome-shell: symbol lookup error: /lib64/libgudev-1.0.so.0: undefined symbol: g_type_class_adjust_private_offset
---

Version-Release number of selected component (if applicable):
rhel7.0 rhel7.1
kernel-3.10.0-327.10.1.el7
systemd-219-19.el7
libgudev1-219-19.el7
glib2-2.36.3-5.el7

How reproducible:
Always

Steps to Reproduce:
1. Install latest (rhel7.2) kernel on rhel7.0 system
 yum install kernel
2. Try to restart GUI on console or within vnc session.

Actual results:

Oh no! Something has gone wrong

Expected results:

GUI should start without any issue.


Additional info:

Install of new kernel on rhel7.0 pulls few dependencies. systemd and libgudev1 of these is causing problem.
The packages get updated to new release without glib2 which is still at older release and hence symbol lookup error is observed.
systemd spec should have entry of Requires: glib2 >= 2.42

Comment 2 Lukáš Nykrýn 2016-02-26 07:22:04 UTC
If I am not mistaken this is a glib problem. They have changed the api without bumping soname. And the dependencies on libraries are added automatically, they should not be in spec.

Comment 4 Colin Walters 2016-02-26 13:35:38 UTC
Lukáš, at the moment the burden is on dependent packages to bump the Requires.

See https://bugzilla.redhat.com/show_bug.cgi?id=300241 and many others.  GLib doesn't use versioned symbols, so dependent packages have to manually increase the Requires:.  I know it sucks, and RPM could handle this better, but it is the way it is.

It's not a matter of soname bumping as no ABI broke, it was just added.

So, optionally please do consider editing the systemd spec file to use >= 2.42.

Comment 6 Lukáš Nykrýn 2016-02-29 14:17:23 UTC
Ok, lets add that in our spec.

Comment 7 masanari iida 2016-03-03 03:12:42 UTC
I have encountered the same problem.
Add me in CC

Comment 10 Branislav Blaškovič 2016-06-30 08:50:27 UTC
# rpm -q libgudev1
libgudev1-219-22.el7

# rpm --requires -q libgudev1 | grep glib2 
glib2 >= 2.42

libgudev1 now requires glib2 of version 2.42 and higher. Marking as verified.

Comment 12 errata-xmlrpc 2016-11-04 00:52:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2216.html