onedata / fs-onedatafs

OnedataFS is a PyFilesystem interface to Onedata virtual file system
MIT License
0 stars 1 forks source link

Installation issues from anaconda #4

Closed andrea-manzi closed 3 years ago

andrea-manzi commented 3 years ago

Hello i'm trying to install the fs-onedatafs lib using anaconda, to install it inside a jupyter notebook

this is my dockerfile

FROM jupyter/minimal-notebook:ubuntu-18.04

USER $NB_UID

RUN conda install mamba -y --quiet -c conda-forge 
RUN mamba install -y  -c onedata fs.onedatafs

installation goes fine ( it installs fs.onedatafs 20.02.4 py37_0 )

but when i try to import it in a notebook i got

from fs.onedatafs import OnedataFS

ImportError                               Traceback (most recent call last)
<ipython-input-1-12d9be3ef961> in <module>
----> 1 from fs.onedatafs import OnedataFS

/opt/conda/lib/python3.7/site-packages/fs/onedatafs/__init__.py in <module>
     10 
     11 if "pytest" not in sys.modules:
---> 12     from ._onedatafs import OnedataFS, OnedataSubFS # noqa

/opt/conda/lib/python3.7/site-packages/fs/onedatafs/_onedatafs.py in <module>
     34 import six
     35 
---> 36 import onedatafs # noqa
     37 
     38 from ._util import ensure_unicode, info_to_stat, stat_to_permissions, to_ascii

/opt/conda/lib/python3.7/site-packages/onedatafs/__init__.py in <module>
----> 1 from .onedatafs import OnedataFS, Stat, Xattr

ImportError: libprotobuf.so.24: cannot open shared object file: No such file or directory

i see that this version of protobuf is installed when running the installation of the lib

libprotobuf 3.14.0 h780b84a_0 conda-forge/linux-64 2 MB

cheers Andrea

bkryza commented 3 years ago

@andrea-manzi yes this is a common problem, we are yet to find a solution to it.

The problem is that 20.02.4 was built with libprotobuf 3.13, while 7 days ago 3.14 was published and unfortunately they renumber their so libraries without providing a symlink without a trailing number.

Can you try to downgrade the protobuf to 3.13? I will try to update the the conda build yaml to force a specific version for the next release...

andrea-manzi commented 3 years ago

yes i can confirm that with libprotobuf 3.13 it works! thanks!

i don't know if it should be discussed here, but if i try to use a legacy token ( we updated the infra from 19.02 to 20.02) i have this error with the lib

Handshake connection error: invalid macaroon
Connection refused - aborting...

while if i create a new token for Access it works, have you seen a similar problem?

lopiola commented 3 years ago

Hi @andrea-manzi, unfortunately there is a bug in Oneprovider <= 20.02.3 that wrongly denies access with legacy tokens. If you upgrade to 20.02.4, it will work (you must start with Onezone, of course, as Oneprovider cannot have higher version).

andrea-manzi commented 3 years ago

ok thanks ! i will upgrade the infra to 20.02.04 then