aerospike-client-python icon indicating copy to clipboard operation
aerospike-client-python copied to clipboard

import error on venv

Open alon-dotan-starkware opened this issue 5 years ago • 3 comments

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)

alon-dotan-starkware avatar Aug 18 '20 06:08 alon-dotan-starkware

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 avatar Aug 20 '20 02:08 dwelch-spike

@dwelch-spike can you share more info about the manylinux installation? Its simple flag to the pip command?

alon-dotan-starkware avatar Aug 20 '20 04:08 alon-dotan-starkware

@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

dwelch-spike avatar Aug 21 '20 01:08 dwelch-spike