import error on venv
looks like in some situation the aerospike so linked to the wrong SSL so we do the following, create venv on ci server (ubuntu 18.04) and copy it to docker image which is debian based, Im getting the following error:
ImportError: /app/python_pip/python3.7/pip_aerospike/aerospike.cpython-37m-x86_64-linux-gnu.so: undefined symbol: SSLv23_client_method
when I run ldd on the aerospike.cpython-37m-x86_64-linux-gnu.so I get different results: if build the venv on the docker container, the aerospike.cpython-37m-x86_64-linux-gnu.so linked with SSL lib under .libsaerospike
ldd pip/python_pip/python3.7/pip_aerospike/aerospike.cpython-37m-x86_64-linux-gnu.so
linux-vdso.so.1 (0x00007fff03792000)
libssl-520a8983.so.1.1 => pip/python_pip/python3.7/pip_aerospike/.libsaerospike/libssl-520a8983.so.1.1 (0x00007f3750ccf000)
libcrypto-b6f6726c.so.1.1 => pip/python_pip/python3.7/pip_aerospike/.libsaerospike/libcrypto-b6f6726c.so.1.1 (0x00007f37507b3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3750594000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f37501f6000)
libz-eb09ad1d.so.1.2.3 => pip/python_pip/python3.7/pip_aerospike/.libsaerospike/libz-eb09ad1d.so.1.2.3 (0x00007f374ffdf000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f374fdd7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f374f9e6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f37512c3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f374f7e2000)
but if I do it on the ubunu machine and copy the venv:
$ ldd aerospike.cpython-37m-x86_64-linux-gnu.so
linux-vdso.so.1 (0x00007ffcae1aa000)
libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fbddb2c3000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fbddadf8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbddabd9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbdda83b000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbdda61e000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbdda416000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbdda025000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbddb880000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbdd9e21000)
Hi @alon-dotan-starkware
How are you installing the Python client on your venv?
These sorts of issues may be solved by the packaged openssl in our manylinux wheels. I would recommend you try the manylinux wheel install (via pip), or build the Python client from source against the openssl of your choice using https://github.com/aerospike/aerospike-client-python/issues/256#issuecomment-622265854 (disregard the brew stuff for linux) . Also see https://github.com/aerospike/aerospike-client-python/blob/master/BUILD.md#building-on-an-unsupported-linux-distro
I hope this helps. :)
@dwelch-spike can you share more info about the manylinux installation? Its simple flag to the pip command?
@alon-dotan-starkware the manylinux installation happens by default when using pip install aerospike, but you need Python client >= 3.8.0 and pip >= 19.0. There is an explanation here https://discuss.aerospike.com/t/python-client-manylinux2010-wheel-install-and-openssl/7005