Bug 1983643 - glibc: Remove glibc-hwcaps multilibs on updates [rhel-9]
Summary: glibc: Remove glibc-hwcaps multilibs on updates [rhel-9]
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: glibc
Version: CentOS Stream
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: beta
: ---
Assignee: Florian Weimer
QA Contact: Sergey Kolosov
URL:
Whiteboard:
Depends On: 1983628 1983677
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-07-19 10:40 UTC by Florian Weimer
Modified: 2023-07-18 14:29 UTC (History)
11 users (show)

Fixed In Version: glibc-2.33.9000-55.el9
Doc Type: No Doc Update
Doc Text:
Clone Of: 1983639
Environment:
Last Closed: 2021-12-07 21:42:00 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.