Bug 1983643

Summary: glibc: Remove glibc-hwcaps multilibs on updates [rhel-9]
Product: Red Hat Enterprise Linux 9 Reporter: Florian Weimer <fweimer>
Component: glibcAssignee: Florian Weimer <fweimer>
Status: CLOSED CURRENTRELEASE QA Contact: Sergey Kolosov <skolosov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: ashankar, bstinson, codonell, dj, fweimer, jwboyer, mcermak, mnewsome, pfrankli, sipoyare, skolosov
Target Milestone: betaKeywords: Patch, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glibc-2.33.9000-55.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 1983639 Environment:
Last Closed: 2021-12-07 21:42:00 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: 1983628, 1983677    
Bug Blocks:    

Description Florian Weimer 2021-07-19 10:40:28 UTC
+++ This bug was initially created as a clone of Bug #1983639 +++

The Lua code to remove ELF multilibs does not iterate over all glibc-hwcaps subdirectories, so it misses the power9 multilib added in bug 1956357.

Comment 1 Florian Weimer 2021-07-21 19:13:40 UTC
glibc-2.33.9000-46.el9 (in a side tag only, so not moving to MODIFIED yet) contains the fix.

Comment 2 Alois Mahdal 2021-07-24 09:08:40 UTC
It's still failing in el8toel9 upgrade:

    [  729.829314] upgrade[1748]:   Upgrading        : bash-5.1.0-3.el9.ppc64le                           22/1361 
    [  729.829415] upgrade[1748]:   Running scriptlet: bash-5.1.0-3.el9.ppc64le                           22/1361 
    [  729.829512] upgrade[1748]:   Running scriptlet: glibc-2.33.9000-46.el9.ppc64le                     23/1361 
    [  729.829612] upgrade[1748]:   Upgrading        : glibc-2.33.9000-46.el9.ppc64le                     23/1361 
    [  729.829711] upgrade[1748]: warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew 
    [  729.829810] upgrade[1748]:   Running scriptlet: glibc-2.33.9000-46.el9.ppc64le                     23/1361 
    [  729.829909] upgrade[1748]: /bin/sh: /lib64/glibc-hwcaps/power9/libc-2.28.so: version `GLIBC_2.33' not found (required by /bin/sh) 
    [  729.830017] upgrade[1748]: /bin/sh: /lib64/glibc-hwcaps/power9/libc-2.28.so: version `GLIBC_2.33' not found (required by /lib64/libtinfo.so.6) 
    [  729.830100] upgrade[1748]: warning: %triggerin(cronie-1.5.2-4.el8.ppc64le) scriptlet failed, exit status 1 
    [  729.830182] upgrade[1748]:   Installing       : glibc-gconv-extra-2.33.9000-46.el9.ppc64le         24/1361 
    [  729.830263] upgrade[1748]:   Running scriptlet: glibc-gconv-extra-2.33.9000-46.el9.ppc64le         24/1361 
    [  729.830344] upgrade[1748]: /bin/sh: /lib64/glibc-hwcaps/power9/libc-2.28.so: version `GLIBC_2.33' not found (required by /bin/sh) 
    [  729.830426] upgrade[1748]: /bin/sh: /lib64/glibc-hwcaps/power9/libc-2.28.so: version `GLIBC_2.33' not found (required by /lib64/libtinfo.so.6) 
    [  729.830517] upgrade[1748]: warning: %post(glibc-gconv-extra-2.33.9000-46.el9.ppc64le) scriptlet failed, exit status 1 
    [  729.830601] upgrade[1748]:   Upgrading        : zlib-1.2.11-27.el9.ppc64le                         25/1361 
    [  729.830695] upgrade[1748]:   Upgrading        : libstdc++-11.1.1-6.1.el9.ppc64le                   26/1361 
    [  729.830792] upgrade[1748]:   Upgrading        : xz-libs-5.2.5-6.el9.ppc64le                        27/1361 
    [  729.830886] upgrade[1748]:   Upgrading        : bzip2-libs-1.0.8-7.el9.ppc64le                     28/1361 
    [  729.830981] upgrade[1748]:   Upgrading        : libzstd-1.5.0-1.el9.ppc64le                        29/1361 

full console log here: http://lab-02.rhts.eng.bos.redhat.com/beaker/logs/recipes/10355+/10355567/console.log

Comment 3 Florian Weimer 2021-07-24 10:03:14 UTC
Found the bug:

@@ -1967,10 +1967,11 @@ install_libs = { "anl", "BrokenLocale", "c", "dl", "m", "mvec",
 remove_regexps = {}
 for i = 1, #install_libs do
   -- Versioned install name.
-  remove_regexps[i] = ("lib" .. install_libs[i]
-                       .. "%%-[2-9]%%.[0-9]+%%.so$")
+  remove_regexps[#remove_regexps + 1] = ("lib" .. install_libs[i]
+                                         .. "%%-[2-9]%%.[0-9]+%%.so$")
   -- Unversioned install name.
-  remove_regexps[i] = ("lib" .. install_libs[i] .. "%%.so%.[0-9]+$")
+  remove_regexps[#remove_regexps + 1] = ("lib" .. install_libs[i]
+                                         .. "%%.so%%.[0-9]+$")
 end

The old libc-2.28.so names are not removed because the pattern for them is overwritten. The new version uses the Lua table append idiom.

I'll see if I can spin a new build for testing.

Comment 4 Florian Weimer 2021-07-24 12:26:28 UTC
glibc-2.33.9000-49.el9 is the first build with this fix. Alois, would you mind checking again? Thanks.

Comment 5 Alois Mahdal 2021-07-27 07:51:31 UTC
With glibc-2.33.9000-49.el9 the transaction was completed successfully.


Thanks!

Comment 8 Florian Weimer 2021-08-02 11:00:33 UTC
glibc-2.33.9000-55.el9 with this change is in gating, via rhel-9.0.0-beta-build-sidetag-86604-stack-gate.