assist icon indicating copy to clipboard operation
assist copied to clipboard

undefined symbol: reb_error?

Open mschwamb opened this issue 1 year ago • 6 comments

Our conda build of sorcha is getting errors and it looks like its associated with the assist libraries.

OSError: /home/conda/feedstock_root/build_artifacts/sorcha_1702463297198/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/python3.11/site-packages/assist/../libassist.cpython-311-x86_64-linux-gnu.so: undefined symbol: reb_error

Would you be able to take a look?

mschwamb avatar Dec 13 '23 10:12 mschwamb

It looks like you are using a new version of rebound but and old version of assist.

hannorein avatar Dec 13 '23 12:12 hannorein

We're getting assist from conda. Is the conda version of assist up to date or out of sync?

mschwamb avatar Dec 13 '23 12:12 mschwamb

It might not be up to date. See issue #96. @mjuric, would you have time to guide me through that process?

matthewholman avatar Dec 13 '23 12:12 matthewholman

I reproduced the problem:

$ mamba create -n sorcha-env-test -c conda-forge sorcha
$ conda activate sorcha-env-test
$ sorcha

Traceback (most recent call last):
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/bin/sorcha", line 6, in <module>
    from sorcha.sorcha import main
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/sorcha/__init__.py", line 4, in <module>
    from .sorcha import cite
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/sorcha/sorcha.py", line 9, in <module>
    from sorcha.ephemeris.simulation_driver import create_ephemeris
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/sorcha/ephemeris/__init__.py", line 27, in <module>
    from .simulation_setup import (
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/sorcha/ephemeris/simulation_setup.py", line 3, in <module>
    from assist import Ephem
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/assist/__init__.py", line 13, in <module>
    clibassist = cdll.LoadLibrary(pymodulespath + '/../libassist' + suffix)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/ctypes/__init__.py", line 454, in LoadLibrary
    return self._dlltype(name)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/ctypes/__init__.py", line 376, in __init__
    self._handle = _dlopen(self._name, mode)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: dlopen(/Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/assist/../libassist.cpython-311-darwin.so, 0x0006): Symbol not found: _reb_create_simulation
  Referenced from: <8FC1D2C4-141A-32CA-A5C7-65A2D9922BCA> /Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/libassist.cpython-311-darwin.so
  Expected in:     <596EE18A-D844-33B5-AB8A-86181DF868CC> /Users/mjuric/miniconda3/envs/sorcha-env-test/lib/python3.11/site-packages/librebound.cpython-311-darwin.so

Downgrading rebound to 3.28.3 makes it work. As @hannorein said, it's a version mismatch. This is arm64.

Looking at why this happened...

mjuric avatar Dec 13 '23 18:12 mjuric

I made the necessary updates, and I'm now waiting on conda-forge bot to pick up the changes.

@matthewholman , let's find 30 min to meet & for me to walk you through the release process so conda repos get updated semi-automatically going forward (are you free later today)?

mjuric avatar Dec 13 '23 18:12 mjuric

Thanks all for the help solving this

mschwamb avatar Dec 13 '23 21:12 mschwamb