Can not "yum update" because of glibc

Latest response

Recently I've been getting an error message when trying to do a yum update.
I'm updating against our satellite server and the following repos are enabled.
[root@servername ~]# yum repolist
Loaded plugins: enabled_repos_upload, langpacks, package_upload, product-id, search-disabled-repos, subscription-manager
repo id repo name status
!rhel-7-server-optional-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server - Optional (RPMs) 17,235
!rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 23,364
!rhel-7-server-satellite-tools-6.4-rpms/x86_64 Red Hat Satellite Tools 6.4 (for RHEL 7 Server) (RPMs) 70
repolist: 40,669

When the update gets to glibc, I get the following.
---> Package efivar-libs.x86_64 0:36-11.el7 will be installed
---> Package fwupdate-libs.x86_64 0:12-5.el7 will be installed
--> Processing Dependency: fwupdate-efi = 12-5.el7 for package: fwupdate-libs-12-5.el7.x86_64
---> Package glibc.i686 0:2.17-260.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-260.el7 for package: glibc-2.17-260.el7.i686
---> Package libglvnd.x86_64 1:1.0.1-0.8.git5baa1e5.el7 will be installed
---> Package libsmbios.x86_64 0:2.3.3-8.el7 will be installed
---> Package mpg123-libs.x86_64 0:1.25.6-1.el7 will be installed
---> Package ndctl.x86_64 0:62-1.el7 will be installed
--> Processing Dependency: daxctl-libs(x86-64) = 62-1.el7 for package: ndctl-62-1.el7.x86_64
--> Processing Dependency: libdaxctl.so.1(LIBDAXCTL_5)(64bit) for package: ndctl-62-1.el7.x86_64
--> Processing Dependency: libdaxctl.so.1(LIBDAXCTL_4)(64bit) for package: ndctl-62-1.el7.x86_64
--> Processing Dependency: libdaxctl.so.1(LIBDAXCTL_3)(64bit) for package: ndctl-62-1.el7.x86_64
--> Processing Dependency: libdaxctl.so.1(LIBDAXCTL_2)(64bit) for package: ndctl-62-1.el7.x86_64
--> Processing Dependency: libdaxctl.so.1()(64bit) for package: ndctl-62-1.el7.x86_64
---> Package ndctl-libs.x86_64 0:62-1.el7 will be installed
---> Package nss-softokn-freebl.i686 0:3.36.0-5.el7_5 will be installed
--> Running transaction check
---> Package daxctl-libs.x86_64 0:62-1.el7 will be installed
---> Package fwupdate-libs.x86_64 0:12-5.el7 will be installed
--> Processing Dependency: fwupdate-efi = 12-5.el7 for package: fwupdate-libs-12-5.el7.x86_64
---> Package glibc.i686 0:2.17-260.el7 will be installed
--> Processing Dependency: glibc-common = 2.17-260.el7 for package: glibc-2.17-260.el7.i686
--> Finished Dependency Resolution
Error: Package: glibc-2.17-260.el7.i686 (rhel-7-server-rpms)
Requires: glibc-common = 2.17-260.el7
Removing: glibc-common-2.17-222.el7.x86_64 (@rhel-7-server-rpms)
glibc-common = 2.17-222.el7
Updated By: glibc-common-2.17-260.el7_6.3.x86_64 (rhel-7-server-rpms)
glibc-common = 2.17-260.el7_6.3
Available: glibc-common-2.17-55.el7.x86_64 (rhel-7-server-rpms)
glibc-common = 2.17-55.el7
Available: glibc-common-2.17-55.el7_0.1.x86_64 (rhel-7-server-rpms)

I'm not sure why it wants glibc.i686 and more importantly, why isn't it avaiable.

Responses

Looks like its trying to install the .i686 version instead of the x86_64. What happens if you specify glibcx86_64 instead of just glibc?

I noticed that, I'm not specifying glibc, I just did a "yum update", I think something else is looking for glibc.i686

Yes but if you do a yum update glibc-version.x86_64 to have it update only glibc, you can then try just a yum update to see if that fixes whatever is trying to update glibc.i686.

Hi Leroy,

That is odd indeed and to solve it might be a quite tricky job to do. Before we can (hopefully) give you a safe advice, we need a
little bit more information. Doing something wrong when finding a workaround for glibc errors might break the whole system.

Please provide comprehensive information about your environment and most importantly - which edition and variant of RHEL
are you running ? Which minor (7) point release are you using ? Are there any 32-bit applications installed on that system ? :)

Regards,
Christian

After doing some digging. I think I figured out the issue. I have a server which is registered to Red Hat and one that is registered to our satellite server. They are both subscribed to rhel-7-server-rpms but one looks like this !rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 23,364

the other one looks like rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 23,710

My satellite server is missing about 350 packages!! and I'm going to assume that they are .i686 packages

Hi Leroy,

I don't think that 32-bit packages are missing ... RHEL 7 defaults to and ships with 64-bit ones. :)
Of course 32-bit packages are available for those who explicitly need them (see Jan's post below).

Regards,
Christian

Hi Leroy,

Here are some recommendations/suggestions/thoughts from my side to troubleshoot your current situation.

Remove all fwupd related packages (they might be responsible for the issue) : sudo yum remove fwupd*

Enable the rhel-7-server-extras-rpms repository, recommended when having the optional repository enabled :

sudo subscription-manager repos --enable rhel-7-server-extras-rpms

Clean up yum / cache : sudo yum clean all and sudo rm -r /var/cache/yum

Upgrade glibc packages : sudo yum upgrade glibc*

Upgrade the whole system : sudo yum upgrade

Reinstall fwupd : sudo yum install fwupd

Hope this solves the problem ... I think I recall that fwupdate packages had broken dependencies in the past. :)

Regards,
Christian

Hi Leroy,

I'm curious ... did you try what I suggested and, in case you did - could it solve the problem ? :)

Regards,
Christian

All,

Not all application shipped by Red Hat are 64 bits. Some 32 bits libraries are moved to the extra repository. (edited for I see you use Satellite 6.x)

@Leroy: you may need to activate and sync the extra repository.

Regards,

Jan Gerrit

Hi Jan Gerrit,

Thanks for the hint. The libraries are mainly included for compatibility reasons in case someone installs an
application from external sources which wouldn't work without these 32-bit libraries. On a "normal setup"
we won't find any 32-bit applications or libraries installed, well, if they were not installed intentionally ... :)

Regards,
Christian

I've been through this, but will have to post tomorrow.

RJ

Apologies for the delay posting this...

first of all, strong warning to NOT REFLEXIVELY RUN THIS UNLESS yum check proves you have multiple duplicates of rpms

Run this at your own risk

In some cases of late, we've had some serious yum issues (I'll provide a link to a discussion I started on that topic later).

First find the offending failed transaction (assumes rhel7)

[root@yoursystem #] # yum check
<IN THE OUTPUT LOOK FOR DUPLICATE RPMS>

IF AND ONLY IF you find a litany of duplicate rpms due to a failed yum update, try this to do another check

[root@yoursystem #] # yum history
<IN THE OUTPUT LOOK FOR A FAILED TRANSACTION>

make note of the failed transaction from above

** this is at your own risk, recommend doing this AFTER opening a case with Red Hat** NOTE: REPLACE "XX" below with the number from the previous step!!

yum history redo force-reinstall force-remove XX

THIS IS AN ALTERNATE METHOD only if the above fails, IF THE ABOVE METHOD WORKS, DO NOT RUN THE BELOW METHOD!!!

THIS IS AN ALTERNATE METHOD only if the above fails, IF THE ABOVE METHOD WORKS, DO NOT RUN THE BELOW METHOD!!!

Do not run this without an open case on the matter with Red Hat Support You have been warned This REALLY SHOULD NOT BE RAN REFLEXIVELY BUT ONLY WITH DIRECTION FROM RED HAT SUPPORT

[1] Take the backup of rpmdb
   # tar cjf /tmp/rpm_db.tar.bz2 /var/lib/{rpm,yum}
[2] # yum check > /tmp/yumcheck
[3] # grep "duplicate" /tmp/yumcheck | awk '{ print $NF }' | egrep -v "\:" > /tmp/duplicaterpms
[4] # grep "duplicate" /tmp/yumcheck | awk '{ print $NF }' | egrep ":" | awk -F':' '{ print $NF }' >> /tmp/duplicaterpms
[5] Now, We can just remove that as follows.
   # for i in `cat /tmp/duplicaterpms`; do rpm -e --justdb --nodeps $i; done
[6] # yum update

After getting: ** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows: glibc-2.17-307.el7.1.x86_64 is a duplicate with glibc-2.17-222.el7.i686 glibc-common-2.17-307.el7.1.x86_64 is a duplicate with glibc-common-2.17-222.el7.x86_64 nss-softokn-freebl-3.44.0-8.el7_7.x86_64 is a duplicate with nss-softokn-freebl-3.36.0-5.el7_5.i686

What worked for me:

yum reinstall glibc-2.17-307.el7.1.x86_64 glibc-common-2.17-307.el7.1.x86_64 yum update

We had previously tried a reinstall, but without specifying the common package.

Your suggestion worked perfectly. Thanks.