Unlocking SAP HANA EML Success: Resolving libssl.so.1.0.0 and libcrypto.so.1.0.0 Compatibility on RHEL 8.6
Dive into the Challenge
In the realm of SAP HANA, every upgrade is a step towards optimization. However, our recent journey from version 59.05 to 59.10 uncovered a peculiar challenge. The Extended Machine Learning (EML) functionality hit a roadblock, throwing an unsettling error in the SAP HANA DB and casting a crimson hue on the DBACOCKPIT due to EML Library registration failed.
HANA Studio –> SQL window –> select * from m_plugin_status;
Registration of package EMLLIB failed at “create afl package _SYS_AFL.EMLLIB file ‘/plugins/eml/libaflemllib’ in _SYS_AFL.EML” with error 444: “package manager error – load library failed”
As per index server log below is the error –
Error dlopen: libaflemllib.so msg: libaflemllib.so: cannot open shared object file: No such file or directory
Error dlopen: libaflemllib msg: libaflemllib: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/libaflemllib.so msg: /usr/sap/ABC/HDB00/exe/libaflemllib.so: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/libaflemllib msg: /usr/sap/ABC/HDB00/exe/libaflemllib: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/afl/libaflemllib.so msg: /usr/sap/ABC/HDB00/exe/plugins/afl/libaflemllib.so: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/afl/libaflemllib msg: /usr/sap/ABC/HDB00/exe/plugins/afl/libaflemllib: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/eml/libaflemllib.so msg: libssl.so.1.0.0: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/eml/libaflemllib msg: /usr/sap/ABC/HDB00/exe/plugins/eml/libaflemllib: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/epmmds/libaflemllib.so msg: /usr/sap/ABC/HDB00/exe/plugins/epmmds/libaflemllib.so: cannot open shared object file: No such file or directory
Error dlopen: /usr/sap/ABC/HDB00/exe/plugins/epmmds/libaflemllib msg: /usr/sap/ABC/HDB00/exe/plugins/epmmds/libaflemllib: cannot open shared object file: No such file or directory
AFLPM_SQL AFLPM_SQLDriverObj.cpp(00042) : Registration of package EMLLIB failed at “create afl package _SYS_AFL.EMLLIB file ‘/plugins/eml/libaflemllib’ in _SYS_AFL.EML” with error 444: “package manager error – load library failed”.
AFLPM AFLComponent.cpp(00031) : error while AFL Package Manager initialization: registration of AFLs failed
Navigating to EML directory and run below command to see which library is missing –
Library Details
Tracing the Culprit
The investigation revealed a specific quest for libssl.so.1.0.0 and libcrypto.so.1.0.0 post HANA DB and plugins upgrade. Yet, the elusive files were nowhere to be found in the directory /usr/lib64 of RHEL 8.6.
Instead of 1.0.0, below file is available –
SAP Standards Echo the Challenge
SAP’s guidelines for EML registration assert the necessity of libssl.so.1.0.0 and libcrypto.so.1.0.0. Intriguingly, a SAP standard note for SUSE SP15 (2936298 – SAP HANA External Machine Learning Library 2.0 requires libssl 1.0.x) mirrored our encounter, highlighting the identical issue.
Surprisingly, in HANA 2.0 SPS05, EML registration succeeded without the explicit presence of libssl.so.1.0.0 and libcrypto.so.1.0.0. However, the dynamics shifted post-upgrade to SPS10, leading to a puzzling failure in the registration process.
Given that OpenSSL is the purveyor of these vital libraries, the plot thickens as both libraries remain conspicuously absent in the RHEL 8.6 repository.
Navigating the Solution –
Confirmed: EML success demands libssl.so.1.0.0 and libcrypto.so.1.0.0. Now, the pivotal question arises – where to procure these elusive libraries?
There are 2 methods to get this library and install in /usr/lib64 without removing the existing one.
Method 1
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz
tar -xzvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config -fPIC –prefix=/usr/local/openssl/ enable-shared
make
make install
cd /usr/local/openssl
cp /usr/local/openssl/lib/libcrypto.so.1.0.0 /lib64
cp /usr/local/openssl/lib/libcrypto.so /lib64
cp /usr/local/openssl/lib/libssl.so.1.0.0 /lib64
cp /usr/local/openssl/lib/libssl.so /lib64
Method 2
These libraries are still available in RHEL7, if you have any system which is running with RHEL7, you can get both libraries in/usr/lib64 and copy it from there to RHEL8 –
cp -R libssl.so.1.0.2k /usr/lib64
cp -R libcrypto.so.1.0.2k /usr/li64
Navigate to /usr/lib64 and run below command via root
chmod 755 libssl.so.1.0.2k
chmod 755 libcrypto.so.1.0.2k
ln -sf libssl.so.1.0.2k libssl.so.1.0.0
ln -sf libcrypto.so.1.0.2k libcrypto.so.1.0.0
Before Restart, once you perform any above method, validate the library is now available with ldd command –
Post validate, restart the HANA DB and now it should register EML plugin successfully.
Happy Learning!!!