Bug 1979150

Summary: hwloc 2.2.0 rebase requires hwloc 1.11 compat package for old binaries
Product: Red Hat Enterprise Linux 8 Reporter: andrew.wellington
Component: hwlocAssignee: Prarit Bhargava <prarit>
Status: CLOSED ERRATA QA Contact: Jeff Bastian <jbastian>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.4CC: carl, cbesson, darcari, jwboyer, prarit, rvr
Target Milestone: betaKeywords: Triaged
Target Release: 8.5   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: hwloc-2.2.0-3.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 20:01:56 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:

Description andrew.wellington 2021-07-05 05:31:54 UTC
Description of problem:
The rebase of hwloc in RHEL 8.4 broke ABI compatibility with applications compiled against hwloc 1.11.9-3 in RHEL 8.3. A compat package containing libhwloc.so.5 to allow applications built on RHEL 8.3 to continue working is required.

Version-Release number of selected component (if applicable):
2.2.0-1.el8

How reproducible:
Build an application such as GROMACS (2019 or later when hwloc support was added) on a RHEL 8.3 system with hwloc-devel from CodeReady builder installed to allow the use of hwloc. Attempt to run application on RHEL 8.4 fails as libhwloc.so.5 is missing.

Steps to Reproduce:
1. Install GROMACS 2019 on RHEL 8.3 ensuring that hwloc-devel 1.11.9 is present
2. Upgrade system to RHEL 8.4
3. Attempt to run GROMACS and fail due to missing libhwloc.so.5

Actual results:
Error message:
gmx: error while loading shared libraries: libhwloc.so.5: cannot open shared object file: No such file or directory

Expected results:
GROMACS gmx should run as it did on RHEL 8.3


Additional info:
Rebase bug is here https://bugzilla.redhat.com/show_bug.cgi?id=1841354

A compat package to allow binaries built on RHEL 8.3 to continue working would be ideal.

Current workaround is to manually copy the previous libhwloc.so.5 libraries in place.

Comment 7 Jeff Bastian 2021-07-21 20:44:47 UTC
Verified with hwloc-2.2.0-3.el8

:::::::::::::::::::::::::::::::::
:: Build GROMACS on RHEL-8.3.0 ::
:::::::::::::::::::::::::::::::::

[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.3 (Ootpa)

[root@localhost ~]# rpm -q hwloc-libs
hwloc-libs-1.11.9-3.el8.x86_64

[root@localhost ~]# rpm -ql hwloc-libs | grep lib64
/usr/lib64/libhwloc.so.5
/usr/lib64/libhwloc.so.5.7.6

[root@localhost ~]# wget https://ftp.gromacs.org/gromacs/gromacs-2020.6.tar.gz

[root@localhost ~]# tar xfz gromacs-2020.6.tar.gz

[root@localhost ~]# cd gromacs-2020.6

[root@localhost gromacs-2020.6]# mkdir build && cd build

[root@localhost build]# cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON

[root@localhost build]# make && make check && make install

[root@localhost build]# source /usr/local/gromacs/bin/GMXRC

[root@localhost build]# echo '. /usr/local/gromacs/bin/GMXRC' >> ~/.bashrc

[root@localhost build]# gmx
                    :-) GROMACS - gmx, 2020.6-UNCHECKED (-:
...
...


:::::::::::::::::::::::::::::::::::::::::::
:: Upgrade to RHEL-8.5.0 nightly compose ::
:::::::::::::::::::::::::::::::::::::::::::

[root@localhost ~]# yum update
...
Dependencies resolved.
================================================================================
 Package                 Arch   Version              Repository            Size
================================================================================
Upgrading:
...
 hwloc                   x86_64 2.2.0-3.el8          rhel-8.5.0-baseos    174 k
 hwloc-devel             x86_64 2.2.0-3.el8          rhel-8.5.0-crb       248 k
 hwloc-libs              x86_64 2.2.0-3.el8          rhel-8.5.0-baseos    2.0 M
...

[root@localhost ~]# rpm -qa \*hwloc\* | sort
hwloc-2.2.0-3.el8.x86_64
hwloc-devel-2.2.0-3.el8.x86_64
hwloc-libs-2.2.0-3.el8.x86_64

[root@localhost ~]# gmx
gmx: error while loading shared libraries: libhwloc.so.5: cannot open shared object file: No such file or directory


::::::::::::::::::::::::::::::::::::::::::::::::
:: Install compat libs to fix linker problems ::
::::::::::::::::::::::::::::::::::::::::::::::::

[root@localhost ~]# yum install -y compat-hwloc1
...
================================================================================
 Package        Arch    Version         Repository                         Size
================================================================================
Installing:
 compat-hwloc1  x86_64  2.2.0-3.el8     brew-task-repo-hwloc-2.2.0-3.el8  125 k
...

[root@localhost ~]# rpm -q compat-hwloc1
compat-hwloc1-2.2.0-3.el8.x86_64

[root@localhost ~]# rpm -ql compat-hwloc1
/usr/lib/.build-id
/usr/lib/.build-id/b5
/usr/lib/.build-id/b5/b1fd83aa29f393c80d5fa3b4584b7dfa037a92
/usr/lib64/libhwloc.so.5

[root@localhost ~]# gmx
                    :-) GROMACS - gmx, 2020.6-UNCHECKED (-:
...
...

Comment 10 Carl George 🤠 2021-09-01 22:24:30 UTC
compat-hwloc1 is now available in CentOS Stream 8.

Comment 12 errata-xmlrpc 2021-11-09 20:01:56 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 (hwloc bug fix and enhancement update), 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://access.redhat.com/errata/RHEA-2021:4488