Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1726534

Summary: dhclient fails to load libdns-export.so.1102 after upgrade if the user installed library is not persisted on the new layer
Product: Red Hat Enterprise Virtualization Manager Reporter: Qin Yuan <qiyuan>
Component: imgbasedAssignee: Yuval Turgeman <yturgema>
Status: CLOSED ERRATA QA Contact: Qin Yuan <qiyuan>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.3.5CC: cshao, dfediuck, mavital, nlevy, pelauter, qiyuan, rdlugyhe, sbonazzo, weiwang, yaniwang, yturgema
Target Milestone: ovirt-4.3.5Keywords: ZStream
Target Release: 4.3.5   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: imgbased-1.1.8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-12 11:54:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Node RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Qin Yuan 2019-07-03 06:37:57 UTC
Description of problem:

Install any library, such as apr, on the old layer, then upgrade to new layer, if the library is not persisted on the new layer, dhclient will fail to load libdns-export.so.1102, and network interfaces can't be activated after boot into the new layer.

Some checks on new layer:

# ifup em1
Error: Connection activation failed: IP configuration could not be reserved (no available address, timeout, etc.)

# dhclient --help
dhclient: error while loading shared libraries: libdns-export.so.1102: cannot open shared object file: No such file or directory

# find / -name libdns-export.so*
/usr/lib64/bind9-export/libdns-export.so.1102
/usr/lib64/bind9-export/libdns-export.so.1102.1.2

# ldconfig -p | grep libdns-export
libdns-export.so.100 (libc6,x86-64) => /lib64/libdns-export.so.100

# ldconfig -p | grep apr
libapr-1.so.0 (libc6, x86-64) => /lib64/libapr-1.so.0

# find / -name libapr | wc -l
0

# rpm -qa | grep apr | wc -l
0

As you can see, libapr is still in /etc/ld.so.cache though apr is not installed on the new layer. It's the old libdns-export.so.100 but not the new libdns-export.so.1102 that is in /etc/ld.so.cache. Obviously, /etc/ld.so.cache is synced from the old layer.

The post step when install apr is to call /sbin/ldconfig which will update /etc/ld.so.cache. The upgrade process will then sync /etc/ld.so.cache to new layer since it's got updated on the old layer. But if apr is not reinstalled on the new layer, /etc/ld.so.cache won't be updated again to include the libs specific to the new layer, so all new libs of the new layer can't be loaded after boot into the new layer.


Version-Release number of selected component (if applicable):
redhat-virtualization-host-4.2-20190219.0.el7_6
redhat-virtualization-host-4.3.5-20190626.0.el7_7
apr-1.4.8-3.el7_4.1.x86_64


How reproducible:
100%


Steps to Reproduce:
1. Install redhat-virtualization-host-4.2-20190219.0.el7_6
2. Run `rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm` (The purpose of using rpm install but not yum install is to simulate rpm persisting failure)
3. Upgrade RHVH by running `yum install redhat-virtualization-host-image-update-4.3.5-20190626.0.el7_7.noarch.rpm`
4. Boot into the new layer, and check the network


Actual results:
1. Network is broken after boot into the new layer, the errors of `ifup` and `dhclient --help` are as above


Expected results:
1. The network should be ok, /etc/ld.so.cache should contain all libs in the new layer no matter the user installed lib is persisted or not.


Additional info:

Comment 2 Qin Yuan 2019-07-16 05:54:00 UTC
Tested with:
redhat-virtualization-host-4.2-20190219.0.el7_6
redhat-virtualization-host-4.3.5-20190710.2.el7_7
apr-1.4.8-3.el7_4.1.x86_64

After upgrade to redhat-virtualization-host-4.3.5-20190710.2.el7_7, dhclient works fine, could load libdns-export.so.1102. The bug is fixed, move to VERIFIED.

Comment 5 errata-xmlrpc 2019-08-12 11:54:28 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://access.redhat.com/errata/RHSA-2019:2437