When lauching a command PHP in a Uproc, we obtain the following error:
Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlite.so' - /usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name in Unknown on line 0
After investigation, it was found that Dollar Universe has a library called libsqlite3.so.0 defined in the <duas_folder/bin/lib folder and this is the one being used instead of the System one found on /lib64 because the unienv script sets the variable LD_LIBRARY_PATH as follows:
LD_LIBRARY_PATH=/dollaruniverse_folder/bin/lib:/dollaruniverse_folder/bin/bin_sap/lib:/dollaruniverse_folder/bin/bin_oapp/lib:/dollaruniverse_folder/bin/lib64:/lib64/
Unfortunately, even though the libraries have the same version, they have a very different size:
-r-xr-xr-x 1 univa univ 2524791 12 oct. 2021 /dollaruniverse_folder/bin/lib/libsqlite3.so.0
And at System level:
lrwxrwxrwx 1 root root 19 28 janv. 2021 /lib64/libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxr-xr-x 1 root root 753280 28 janv. 2020 libsqlite3.so.0.8.6
What should we do to avoid using Dollar Universe sqlite library while running our PHP Uprocs?
Release : 6.x and 7.x
Component: Dollar Universe
OS: Unix/Linux
In order to use the sqlite library available in /lib64 insted of Dollar Universe you need to redefine the variable LD_LIBRARY_PATH in the Uproc script as below:
export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH
The same applies for any other possible library being delivered with Dollar Universe.