Bug 1778121 - Creating ManageIQ Conversion Host from oVirt Node makes node unusable
Summary: Creating ManageIQ Conversion Host from oVirt Node makes node unusable
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: ovirt-node
Classification: oVirt
Component: General
Version: 4.3
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
: ---
Assignee: Yuval Turgeman
QA Contact: meital avital
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-29 10:46 UTC by Szymon Madej
Modified: 2019-12-10 10:32 UTC (History)
14 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-10 10:32:06 UTC
oVirt Team: Integration
Embargoed:


Attachments (Terms of Use)

Description Szymon Madej 2019-11-29 10:46:17 UTC
Description of problem:

Setting oVirt Node as Conversion Host in ManageIQ, makes it unusable, because libraries installed by vmware-vix-disklib shadows system libraries.

Version-Release number of selected component (if applicable): At my environment first occurence was at oVirt Node 4.3.7

How reproducible: Always

Steps to Reproduce:
1. Install fresh oVirt Node 4.3.7
2. Setup this host as MIQ Conversion Hosts for VMware (what install vmware-vix-disklib)
3. Try to activate hosts or use misc system tools (yum, firewall-cmd)

Actual results:

Segmentation fault or undefined symbol errors. Node can not be activated.

Expected results:

Everything should work normally.

Additional info:

Problem is caused by installation and configuraion of VMware-vix-disklib-VERSION.x86_64.tar.gz package. After installation to /etc/ld.so.conf.d/ is added file vmware-vix.conf with contents:

# more /etc/ld.so.conf.d/vmware-vix.conf
/usr/lib/vmware-vix-disklib/lib64

What poisons the LD_CACHE and makes node unusable:

# ldconfig --print-cache | grep vmware | more
        libz.so.1 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libz.so.1
        libz.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libz.so
        libxml2.so.2 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libxml2.so.2
        libxml2.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libxml2.so
        libvmomi.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvmomi.so
        libvmacore.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvmacore.so
        libvixMntapi.so.1 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixMntapi.so.1
        libvixMntapi.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixMntapi.so
        libvixDiskLibVim.so.6 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixDiskLibVim.so.6
        libvixDiskLibVim.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixDiskLibVim.so
        libvixDiskLib.so.6 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixDiskLib.so.6
        libvixDiskLib.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvixDiskLib.so
        libvim-types.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libvim-types.so
        libstdc++.so.6 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libstdc++.so.6
        libstdc++.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libstdc++.so
        libssoclient.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libssoclient.so
        libssl.so.1.0.2 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libssl.so.1.0.2
        libssl.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libssl.so
        libsqlite3.so.0 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libsqlite3.so.0
        libsqlite3.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libsqlite3.so
        libgvmomi.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgvmomi.so
        libgthread-2.0.so.0 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgthread-2.0.so.0
        libgthread-2.0.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgthread-2.0.so
        libgobject-2.0.so.0 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgobject-2.0.so.0
        libgobject-2.0.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgobject-2.0.so
        libgmodule-2.0.so.0 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgmodule-2.0.so.0
        libgmodule-2.0.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgmodule-2.0.so
        libglib-2.0.so.0 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libglib-2.0.so.0
        libglib-2.0.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libglib-2.0.so
        libgcc_s.so.1 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgcc_s.so.1
        libgcc_s.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libgcc_s.so
        libffi.so.5 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libffi.so.5
        libffi.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libffi.so
        libexpat.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libexpat.so
        libdiskLibPlugin.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libdiskLibPlugin.so
        libcurl.so.4 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libcurl.so.4
        libcurl.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libcurl.so
        libcrypto.so.1.0.2 (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libcrypto.so.1.0.2
        libcrypto.so (libc6,x86-64) => /usr/lib/vmware-vix-disklib/lib64/libcrypto.so


After removing /usr/lib/vmware-vix-disklib and refreshing /etc/ld.so.cache node works as expected.

Comment 1 Szymon Madej 2019-11-29 10:47:21 UTC
Closing ma earlier bug 1777485 as caused by this.

Comment 3 Fabien Dupont 2019-12-04 10:28:52 UTC
Hi Szymon,

I'm curious to know what procedure you follow to "Setup this host as MIQ Conversion Hosts for VMware (what install vmware-vix-disklib)".
Could you please elaborate and/or point to the documentation you follow?

Thanks.

Comment 4 Szymon Madej 2019-12-10 10:32:06 UTC
We managed to get it working. Problem was more of documentation nature. 

We were installing Conversion Host in ManageIQ using information from https://access.redhat.com/documentation/en-us/red_hat_infrastructure_migration_solution/1.0/html-single/infrastructure_migration_solution_guide/index#Preparing_the_rhv_conversion_hosts then when we get stuck on disklib libraries visibility problems and found solution at VMware documentation. There we got: "create /etc/ld.so.conf.d/vmware-vix.conf with the following content
/usr/lib/vmware-vix-disklib/lib64 (if you are using 64 bit)
/usr/lib/vmware-vix-disklib/lib32 (if you are using 32 bit)"

That was the main problem that brokes the oVirt node, because in vix-disklib package there are many duplicates of low level system libraries.

After drilling down we narrowed solution to just linking only two libraries from vix-disklib package as is described at https://access.redhat.com/documentation/en-us/red_hat_cloudforms/5.0-beta/html/installing_red_hat_cloudforms_on_vmware_vsphere/additional-configuration-vmware


Finding a solution was harder, because of incompatibility between ManageIQ Ivanchuk-1 with virt-v2v in oVirt 4.3.5 an earlier (lack of redirection to separate log file output from --machine-readable). First version that worked was virt-v2v in oVirt 4.3.7.

This is a good material for knowledge database :-) 
Closing as "Works form me". Thanks all for your attention.


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