fiftyone: [BUG] FiftyOne import fails, Ubuntu 22.02 LTS

System information

  • OS Platform and Distribution: Ubuntu 22.04 LTS
  • FiftyOne installed from (pip or source): pip
  • FiftyOne version (run fiftyone --version): Not applicable, due to failing import:
  • Python version: Python 3.10.4

Commands to reproduce

conda create -n PDSM pip
conda activate PDSM
pip install --upgrade pip setuptools wheel
pip install fiftyone
python3
import fiftyone

Describe the problem

python
Python 3.10.4 (main, Mar 31 2022, 08:41:55) [GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fiftyone
Subprocess ['/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/db/bin/mongod', '--dbpath', '/home/nils/.fiftyone/var/lib/mongo', '--logpath', '/home/nils/.fiftyone/var/lib/mongo/log/mongo.log', '--port', '0', '--nounixsocket'] exited with error 127:
/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/db/bin/mongod: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
Uncaught exception
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/__init__.py", line 25, in <module>
    from fiftyone.__public__ import *
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/__public__.py", line 15, in <module>
    _foo.establish_db_conn(config)
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/core/odm/database.py", line 155, in establish_db_conn
    port = _db_service.port
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/core/service.py", line 276, in port
    return self._wait_for_child_port()
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/core/service.py", line 170, in _wait_for_child_port
    return find_port()
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/retrying.py", line 212, in call
    raise attempt.get()
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/six.py", line 719, in reraise
    raise value
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "/home/nils/anaconda3/envs/PDSM/lib/python3.10/site-packages/fiftyone/core/service.py", line 168, in find_port
    raise ServiceListenTimeout(etau.get_class_name(self), port)
fiftyone.core.service.ServiceListenTimeout: fiftyone.core.service.DatabaseService failed to bind to port

Code to reproduce issue

see above

Other info / logs

What areas of FiftyOne does this bug affect?

  • App: FiftyOne application issue
  • Core: Core fiftyone Python library issue
  • Server: Fiftyone server issue

Willingness to contribute

The FiftyOne Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the FiftyOne codebase?

  • Yes. I can contribute a fix for this bug independently.
  • Yes. I would be willing to contribute a fix for this bug with guidance from the FiftyOne community.
  • No. I cannot contribute a bug fix at this time.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 18 (5 by maintainers)

Most upvoted comments

@Nils-ChristianIseke Unfortunately not for me. I installed the newest libssl1.1 package, then tried to import fiftyone as fo.

Resulting error:

Subprocess ['/home/vii33/.virtualenvs/test2-mlao/lib/python3.10/site-packages/fiftyone/db/bin/mongod', 
'--dbpath', '/home/vii/.fiftyone/var/lib/mongo', '--logpath', '/home/vii33/.fiftyone/var/lib/mongo/log/mongo.log', 
'--port', '0', '--nounixsocket'] exited with error 1:

/home/vii33/.virtualenvs/test2-mlao/lib/python3.10/site-packages/fiftyone/db/bin/mongod: 
/lib/x86_64-linux-gnu/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /home/vii33/.virtualenvs/test2-mlao/lib/python3.10/site-packages/fiftyone/db/bin/mongod)

Ubuntu 22.04 should be adopted by a lot of people now. Really frustrating to have to deal with such issues.

Ubuntu 22.04 users should now be able to install FiftyOne as follows:

pip install fiftyone
pip install fiftyone-db-ubuntu2204  # installs MongoDB 6

Note: manually installing fiftyone-db-ubuntu2204 will be necessary until we update the MongoDB version here to 6.0.4 or greater, at which point the fiftyone package will ship with MongoDB 6.0.4 by default on all Linux systems.

@tadejsv Thank you very much! The provided solution resolves the import error:

1. Download libssl1.1 from https://packages.debian.org/stretch/libssl1.1

2. In the directory where you dowloaded libssl1.1 to :`sudo dpkg -i libssl1.1*.deb`

That didn’t work for me, I needed to download and install a more recent version of libssl (ibssl1.1_1.1.1) from here: https://packages.debian.org/buster/amd64/libssl1.1/download

@tadejsv Thank you very much! The provided solution resolves the import error:

  1. Download libssl1.1 from https://packages.debian.org/stretch/libssl1.1
  2. In the directory where you dowloaded libssl1.1 to :sudo dpkg -i libssl1.1*.deb

This is related to libcrypto1.1 not being availible on Ubuntu 22.04 https://askubuntu.com/a/1403961/1102180

It is true that the current MongoDB that is distributed by default (5.0) will not work on 22.04. We will look into upgrading to 6.0 as the default binary or at least offer an optional upgrade

Regardless, MongoDB 6.0 is available now for Ubuntu 22.04 and can be used instead via your own database URI. We have instructions for configuring your own MongoDB connection here

My solution was to create a new machine with ubuntu 20.04 😄