Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatibility with sundial 6.6.2 #1645

Closed
elac-safran opened this issue Nov 10, 2023 · 15 comments · Fixed by conda-forge/cantera-feedstock#34
Closed

Incompatibility with sundial 6.6.2 #1645

elac-safran opened this issue Nov 10, 2023 · 15 comments · Fixed by conda-forge/cantera-feedstock#34

Comments

@elac-safran
Copy link

elac-safran commented Nov 10, 2023

Problem description

It seems the version of a few sundials libs are hard-coded in cantera 3.0.0:

File "/config/mambaforge/envs/cosapp_turbo_doc/lib/python3.10/site-packages/cantera/__init__.py", line 4, in <module>
    from ._cantera import *
ImportError: libsundials_sunlinsollapackdense.so.4.6.1: cannot open shared object file: No such file or directory

After investigation, it appears my version of sundials (version 6.6.2, installed as a dependency of cantera) contains version 4.6.2 of linear algebra libs (libsundials_sunlinsollapackdense.so, libsundials_sunlinsolband.so, etc.).

Work around

Downgrading to sundials=6.6.1 miraculously installs said libs at version 4.6.1, and everything works.

It could be a sundials packaging error, but I am reporting the issue here, as it might impact other cantera users.

System information

  • Cantera version: 3.0.0
  • OS: Ubuntu 20.04.4 LTS
  • Python/MATLAB/other software versions: Python 3.10
@bryanwweber
Copy link
Member

Hi! Thanks for reporting this. Can you provide the exact command you used to install Cantera? Thanks!

@elac-safran
Copy link
Author

elac-safran commented Nov 10, 2023

Thanks for your reply. I installed it in a conda environmnent, with mamba:

mamba install cantera

@elac-safran
Copy link
Author

The environment was roughly created with

mamba create -n my_env python=3.10 numpy scipy <other irrelevant stuff>

@bryanwweber
Copy link
Member

Thanks for your reply. I installed it in a conda environmnent, with mamba:

mamba install cantera

What channels do you have configured for mamba? Specifically, did you install from the conda-forge or cantera channel?

@speth
Copy link
Member

speth commented Nov 12, 2023

To give us a bit more detail about the specific package versions installed and where they came from, can you provide the output of mamba list, with this environment activated?

@dcmvdbekerom
Copy link

dcmvdbekerom commented Nov 12, 2023

I'm having the same issue, also on Ubuntu-20.04.
We do not use the cantera channel, so our environment.yml file looks like:

channels:
- conda-forge
- astropy
- plotly
dependencies:
<...>
- cantera>=2.5.1   # for chemical equilibrium computations

Adding -cantera to the channels did not resolve the issue.

Below the output from mamba list (full output can be found here https://app.travis-ci.com/github/radis/radis/jobs/613129256):

Complete list of packages
List of packages in environment: "/home/travis/micromamba/envs/radis-env"
  Name                       Version       Build                   Channel    
────────────────────────────────────────────────────────────────────────────────
  _libgcc_mutex              0.1           conda_forge             conda-forge
  _openmp_mutex              4.5           2_gnu                   conda-forge
  alsa-lib                   1.2.10        hd590300_0              conda-forge
  annotated-types            0.6.0         pyhd8ed1ab_0            conda-forge
  aplus                      0.11.0        py_1                    conda-forge
  asdf                       2.15.0        pyhd8ed1ab_0            conda-forge
  asdf-astropy               0.4.0         pyhd8ed1ab_1            conda-forge
  asdf-coordinates-schemas   0.2.0         pyhd8ed1ab_1            conda-forge
  asdf-standard              1.0.3         pyhd8ed1ab_0            conda-forge
  asdf-transform-schemas     0.4.0         pyhd8ed1ab_0            conda-forge
  asdf-unit-schemas          0.1.0         pyhd8ed1ab_0            conda-forge
  asdf-wcs-schemas           0.1.1         pyhd8ed1ab_0            conda-forge
  asteval                    0.9.31        pyhd8ed1ab_0            conda-forge
  astropy                    5.2.2         py38h07e1bb6_0          conda-forge
  astroquery                 0.4.6         pyhd8ed1ab_0            conda-forge
  attr                       2.5.1         h166bdaf_1              conda-forge
  attrs                      23.1.0        pyh71513ae_1            conda-forge
  aws-c-auth                 0.7.6         h37ad1db_0              conda-forge
  aws-c-cal                  0.6.9         h3b91eb8_1              conda-forge
  aws-c-common               0.9.8         hd590300_0              conda-forge
  aws-c-compression          0.2.17        hfd9eb17_6              conda-forge
  aws-c-event-stream         0.3.2         hae413d4_6              conda-forge
  aws-c-http                 0.7.14        h162056d_1              conda-forge
  aws-c-io                   0.13.35       hc23c90e_8              conda-forge
  aws-c-mqtt                 0.9.9         h1387108_0              conda-forge
  aws-c-s3                   0.3.23        h7630044_1              conda-forge
  aws-c-sdkutils             0.1.12        hfd9eb17_5              conda-forge
  aws-checksums              0.1.17        hfd9eb17_5              conda-forge
  aws-crt-cpp                0.24.5        h270613d_5              conda-forge
  aws-sdk-cpp                1.11.182      h8df25a1_5              conda-forge
  beautifulsoup4             4.12.2        pyha770c72_0            conda-forge
  blake3                     0.3.3         py38h0cc4f7c_2          conda-forge
  blosc                      1.21.5        h0f2a231_0              conda-forge
  bokeh                      3.1.1         pyhd8ed1ab_0            conda-forge
  brotli                     1.1.0         hd590300_1              conda-forge
  brotli-bin                 1.1.0         hd590300_1              conda-forge
  brotli-python              1.1.0         py38h17151c0_1          conda-forge
  bzip2                      1.0.8         hd590300_5              conda-forge
  c-ares                     1.21.0        hd590300_0              conda-forge
  c-blosc2                   2.11.2        hb4ffafa_0              conda-forge
  ca-certificates            2023.7.22     hbcca054_0              conda-forge
  cached-property            1.5.2         hd8ed1ab_1              conda-forge
  cached_property            1.5.2         pyha770c72_1            conda-forge
  cairo                      1.18.0        h3faef2a_0              conda-forge
  cantera                    3.0.0         py38hfefddf8_2          conda-forge
  certifi                    2023.7.22     pyhd8ed1ab_0            conda-forge
  cffi                       1.16.0        py38h6d47a40_0          conda-forge
  charset-normalizer         3.3.2         pyhd8ed1ab_0            conda-forge
  click                      8.1.7         unix_pyh707e725_0       conda-forge
  cloudpickle                3.0.0         pyhd8ed1ab_0            conda-forge
  colorama                   0.4.6         pyhd8ed1ab_0            conda-forge
  configparser               5.3.0         pyhd8ed1ab_0            conda-forge
  contourpy                  1.1.1         py38h7f3f72f_1          conda-forge
  cryptography               41.0.5        py38hcdda232_0          conda-forge
  cycler                     0.12.1        pyhd8ed1ab_0            conda-forge
  cython                     3.0.5         py38h17151c0_0          conda-forge
  cytoolz                    0.12.2        py38h01eb140_1          conda-forge
  dask                       2023.5.0      pyhd8ed1ab_0            conda-forge
  dask-core                  2023.5.0      pyhd8ed1ab_0            conda-forge
  dbus                       1.13.6        h5008d03_3              conda-forge
  distributed                2023.5.0      pyhd8ed1ab_0            conda-forge
  expat                      2.5.0         hcb278e6_1              conda-forge
  filelock                   3.13.1        pyhd8ed1ab_0            conda-forge
  fmt                        10.1.1        h00ab1b0_0              conda-forge
  font-ttf-dejavu-sans-mono  2.37          hab24e00_0              conda-forge
  font-ttf-inconsolata       3.000         h77eed37_0              conda-forge
  font-ttf-source-code-pro   2.038         h77eed37_0              conda-forge
  font-ttf-ubuntu            0.83          hab24e00_0              conda-forge
  fontconfig                 2.14.2        h14ed4e7_0              conda-forge
  fonts-conda-ecosystem      1             0                       conda-forge
  fonts-conda-forge          1             0                       conda-forge
  fonttools                  4.44.0        py38h01eb140_0          conda-forge
  freetype                   2.12.1        h267a509_2              conda-forge
  frozendict                 2.3.8         py38h01eb140_1          conda-forge
  fsspec                     2023.10.0     pyhca7485f_0            conda-forge
  future                     0.18.3        pyhd8ed1ab_0            conda-forge
  gettext                    0.21.1        h27087fc_0              conda-forge
  gflags                     2.2.2         he1b5a44_1004           conda-forge
  glib                       2.78.1        hfc55251_0              conda-forge
  glib-tools                 2.78.1        hfc55251_0              conda-forge
  glog                       0.6.0         h6f12383_0              conda-forge
  gmp                        6.3.0         h59595ed_0              conda-forge
  graphite2                  1.3.13        h58526e2_1001           conda-forge
  gst-plugins-base           1.22.6        h8e1006c_2              conda-forge
  gstreamer                  1.22.6        h98fc4e7_2              conda-forge
  gwcs                       0.18.3        pyhd8ed1ab_0            conda-forge
  h5py                       3.10.0        nompi_py38hb71287c_100  conda-forge
  habanero                   1.2.3         pyh1a96a4e_0            conda-forge
  harfbuzz                   8.2.1         h3d44ed6_0              conda-forge
  hdf5                       1.14.2        nompi_h4f84152_100      conda-forge
  html5lib                   1.1           pyh9f0ad1d_0            conda-forge
  icu                        73.2          h59595ed_0              conda-forge
  idna                       3.4           pyhd8ed1ab_0            conda-forge
  importlib-metadata         6.8.0         pyha770c72_0            conda-forge
  importlib-resources        6.1.1         pyhd8ed1ab_0            conda-forge
  importlib_metadata         6.8.0         hd8ed1ab_0              conda-forge
  importlib_resources        6.1.1         pyhd8ed1ab_0            conda-forge
  jaraco.classes             3.3.0         pyhd8ed1ab_0            conda-forge
  jeepney                    0.8.0         pyhd8ed1ab_0            conda-forge
  jinja2                     3.1.2         pyhd8ed1ab_1            conda-forge
  jmespath                   1.0.1         pyhd8ed1ab_0            conda-forge
  joblib                     1.3.2         pyhd8ed1ab_0            conda-forge
  jsonschema                 4.17.3        pyhd8ed1ab_0            conda-forge
  keyring                    24.2.0        py38h578d9bd_1          conda-forge
  keyutils                   1.6.1         h166bdaf_0              conda-forge
  kiwisolver                 1.4.5         py38h7f3f72f_1          conda-forge
  krb5                       1.21.2        h659d440_0              conda-forge
  lame                       3.100         h166bdaf_1003           conda-forge
  lcms2                      2.15          hb7c19ff_3              conda-forge
  ld_impl_linux-64           2.40          h41732ed_0              conda-forge
  lerc                       4.0.0         h27087fc_0              conda-forge
  libabseil                  20230802.1    cxx17_h59595ed_0        conda-forge
  libaec                     1.1.2         h59595ed_1              conda-forge
  libarrow                   14.0.1        h0406937_1_cpu          conda-forge
  libarrow-acero             14.0.1        h59595ed_1_cpu          conda-forge
  libarrow-dataset           14.0.1        h59595ed_1_cpu          conda-forge
  libarrow-flight            14.0.1        h120cb0d_1_cpu          conda-forge
  libarrow-flight-sql        14.0.1        h61ff412_1_cpu          conda-forge
  libarrow-gandiva           14.0.1        hacb8726_1_cpu          conda-forge
  libarrow-substrait         14.0.1        h61ff412_1_cpu          conda-forge
  libblas                    3.9.0         19_linux64_openblas     conda-forge
  libbrotlicommon            1.1.0         hd590300_1              conda-forge
  libbrotlidec               1.1.0         hd590300_1              conda-forge
  libbrotlienc               1.1.0         hd590300_1              conda-forge
  libcantera                 3.0.0         h2f7dcaf_2              conda-forge
  libcap                     2.69          h0f662aa_0              conda-forge
  libcblas                   3.9.0         19_linux64_openblas     conda-forge
  libclang                   15.0.7        default_h7634d5b_3      conda-forge
  libclang13                 15.0.7        default_h9986a30_3      conda-forge
  libcrc32c                  1.1.2         h9c3ff4c_0              conda-forge
  libcups                    2.3.3         h4637d8d_4              conda-forge
  libcurl                    8.4.0         hca28451_0              conda-forge
  libdeflate                 1.19          hd590300_0              conda-forge
  libedit                    3.1.20191231  he28a2e2_2              conda-forge
  libev                      4.33          h516909a_1              conda-forge
  libevent                   2.1.12        hf998b51_1              conda-forge
  libexpat                   2.5.0         hcb278e6_1              conda-forge
  libffi                     3.4.2         h7f98852_5              conda-forge
  libflac                    1.4.3         h59595ed_0              conda-forge
  libgcc-ng                  13.2.0        h807b86a_3              conda-forge
  libgcrypt                  1.10.2        hd590300_0              conda-forge
  libgfortran-ng             13.2.0        h69a702a_3              conda-forge
  libgfortran5               13.2.0        ha4646dd_3              conda-forge
  libglib                    2.78.1        hebfc3b9_0              conda-forge
  libgomp                    13.2.0        h807b86a_3              conda-forge
  libgoogle-cloud            2.12.0        h5206363_4              conda-forge
  libgpg-error               1.47          h71f35ed_0              conda-forge
  libgrpc                    1.59.2        hd6c4280_0              conda-forge
  libhwloc                   2.9.3         default_h554bfaf_1009   conda-forge
  libiconv                   1.17          h166bdaf_0              conda-forge
  libjpeg-turbo              3.0.0         hd590300_1              conda-forge
  liblapack                  3.9.0         19_linux64_openblas     conda-forge
  libllvm14                  14.0.6        hcd5def8_4              conda-forge
  libllvm15                  15.0.7        h5cf9203_3              conda-forge
  libnghttp2                 1.58.0        h47da74e_0              conda-forge
  libnsl                     2.0.1         hd590300_0              conda-forge
  libnuma                    2.0.16        h0b41bf4_1              conda-forge
  libogg                     1.3.4         h7f98852_1              conda-forge
  libopenblas                0.3.24        pthreads_h413a1c8_0     conda-forge
  libopus                    1.3.1         h7f98852_1              conda-forge
  libparquet                 14.0.1        h352af49_1_cpu          conda-forge
  libpng                     1.6.39        h753d276_0              conda-forge
  libpq                      16.1          hfc447b1_0              conda-forge
  libprotobuf                4.24.4        hf27288f_0              conda-forge
  libre2-11                  2023.06.02    h7a70373_0              conda-forge
  libsndfile                 1.2.2         hc60ed4a_1              conda-forge
  libsqlite                  3.44.0        h2797004_0              conda-forge
  libssh2                    1.11.0        h0841786_0              conda-forge
  libstdcxx-ng               13.2.0        h7e041cc_3              conda-forge
  libsystemd0                254           h3516f8a_0              conda-forge
  libthrift                  0.19.0        hb90f79a_1              conda-forge
  libtiff                    4.6.0         ha9c0a0a_2              conda-forge
  libutf8proc                2.8.0         h166bdaf_0              conda-forge
  libuuid                    2.38.1        h0b41bf4_0              conda-forge
  libvorbis                  1.3.7         h9c3ff4c_0              conda-forge
  libwebp-base               1.3.2         hd590300_0              conda-forge
  libxcb                     1.15          h0b41bf4_0              conda-forge
  libxkbcommon               1.6.0         h5d7e998_0              conda-forge
  libxml2                    2.11.5        h232c23b_1              conda-forge
  libzlib                    1.2.13        hd590300_5              conda-forge
  llvmlite                   0.41.1        py38h94a1851_0          conda-forge
  lmfit                      1.2.2         pyhd8ed1ab_1            conda-forge
  locket                     1.0.0         pyhd8ed1ab_0            conda-forge
  lz4                        4.3.2         py38hdcd8cb4_1          conda-forge
  lz4-c                      1.9.4         hcb278e6_0              conda-forge
  lzo                        2.10          h516909a_1000           conda-forge
  markdown-it-py             3.0.0         pyhd8ed1ab_0            conda-forge
  markupsafe                 2.1.3         py38h01eb140_1          conda-forge
  matplotlib                 3.7.3         py38h578d9bd_0          conda-forge
  matplotlib-base            3.7.3         py38h58ed7fa_0          conda-forge
  mdurl                      0.1.0         pyhd8ed1ab_0            conda-forge
  metis                      5.1.0         h59595ed_1007           conda-forge
  more-itertools             10.1.0        pyhd8ed1ab_0            conda-forge
  mpfr                       4.2.1         h9458935_0              conda-forge
  mpg123                     1.32.3        h59595ed_0              conda-forge
  mpl_animators              1.1.0         pyhd8ed1ab_0            conda-forge
  msgpack-python             1.0.6         py38h7f3f72f_0          conda-forge
  munkres                    1.1.4         pyh9f0ad1d_0            conda-forge
  mysql-common               8.0.33        hf1915f5_6              conda-forge
  mysql-libs                 8.0.33        hca2cd23_6              conda-forge
  ncurses                    6.4           h59595ed_2              conda-forge
  ndcube                     2.1.3         pyhd8ed1ab_0            conda-forge
  nest-asyncio               1.5.8         pyhd8ed1ab_0            conda-forge
  nomkl                      1.0           h5ca1d4c_0              conda-forge
  nspr                       4.35          h27087fc_0              conda-forge
  nss                        3.94          h1d7d5a4_0              conda-forge
  numba                      0.58.1        py38h4144172_0          conda-forge
  numexpr                    2.8.4         py38hb2af0cf_101        conda-forge
  numpy                      1.24.4        py38h59b608b_0          conda-forge
  openjpeg                   2.5.0         h488ebb8_3              conda-forge
  openssl                    3.1.4         hd590300_0              conda-forge
  orc                        1.9.0         h4b38347_4              conda-forge
  packaging                  23.2          pyhd8ed1ab_0            conda-forge
  pandas                     1.5.3         py38hdc8b05c_1          conda-forge
  partd                      1.4.1         pyhd8ed1ab_0            conda-forge
  patsy                      0.5.3         pyhd8ed1ab_0            conda-forge
  pcre                       8.45          h9c3ff4c_0              conda-forge
  pcre2                      10.40         hc3806b6_0              conda-forge
  pillow                     10.1.0        py38ha43c96d_0          conda-forge
  pip                        23.3.1        pyhd8ed1ab_0            conda-forge
  pixman                     0.42.2        h59595ed_0              conda-forge
  pkgutil-resolve-name       1.3.10        pyhd8ed1ab_1            conda-forge
  platformdirs               4.0.0         pyhd8ed1ab_0            conda-forge
  plotly                     5.18.0        pyhd8ed1ab_0            conda-forge
  ply                        3.11          py_1                    conda-forge
  pooch                      1.8.0         pyhd8ed1ab_0            conda-forge
  progressbar2               4.2.0         pyhd8ed1ab_0            conda-forge
  psutil                     5.9.5         py38h01eb140_1          conda-forge
  pthread-stubs              0.4           h36c2ea0_1001           conda-forge
  pulseaudio-client          16.1          hb77b528_5              conda-forge
  py-cpuinfo                 9.0.0         pyhd8ed1ab_0            conda-forge
  pyarrow                    14.0.1        py38h96a5bb7_1_cpu      conda-forge
  pycparser                  2.21          pyhd8ed1ab_0            conda-forge
  pydantic                   2.4.2         pyhd8ed1ab_1            conda-forge
  pydantic-core              2.10.1        py38h0cc4f7c_0          conda-forge
  pyerfa                     2.0.0.3       py38h7f0c24c_1          conda-forge
  pygments                   2.16.1        pyhd8ed1ab_0            conda-forge
  pyparsing                  3.1.1         pyhd8ed1ab_0            conda-forge
  pyqt                       5.15.9        py38hffdaa6c_5          conda-forge
  pyqt5-sip                  12.12.2       py38h17151c0_5          conda-forge
  pyrsistent                 0.20.0        py38h01eb140_0          conda-forge
  pysocks                    1.7.1         pyha2e5f31_6            conda-forge
  pytables                   3.8.0         py38h606e206_4          conda-forge
  python                     3.8.18        hd12c33a_0_cpython      conda-forge
  python-dateutil            2.8.2         pyhd8ed1ab_0            conda-forge
  python-utils               3.8.1         pyhd8ed1ab_0            conda-forge
  python_abi                 3.8           4_cp38                  conda-forge
  pytz                       2023.3.post1  pyhd8ed1ab_0            conda-forge
  pyvo                       1.4.2         pyhd8ed1ab_0            conda-forge
  pyyaml                     6.0.1         py38h01eb140_1          conda-forge
  qt-main                    5.15.8        h82b777d_17             conda-forge
  rdma-core                  28.9          h59595ed_1              conda-forge
  re2                        2023.06.02    h2873b5e_0              conda-forge
  readline                   8.2           h8228510_1              conda-forge
  requests                   2.31.0        pyhd8ed1ab_0            conda-forge
  rich                       13.6.0        pyhd8ed1ab_0            conda-forge
  ruamel_yaml                0.15.80       py38h01eb140_1009       conda-forge
  s2n                        1.3.56        h06160fa_0              conda-forge
  scipy                      1.10.1        py38h59b608b_3          conda-forge
  seaborn                    0.13.0        hd8ed1ab_0              conda-forge
  seaborn-base               0.13.0        pyhd8ed1ab_0            conda-forge
  secretstorage              3.3.3         py38h578d9bd_2          conda-forge
  semantic_version           2.10.0        pyhd8ed1ab_0            conda-forge
  setuptools                 68.2.2        pyhd8ed1ab_0            conda-forge
  setuptools-scm             8.0.4         pyhd8ed1ab_0            conda-forge
  sip                        6.7.12        py38h17151c0_0          conda-forge
  six                        1.16.0        pyh6c4a22f_0            conda-forge
  snappy                     1.1.10        h9fff704_0              conda-forge
  sortedcontainers           2.4.0         pyhd8ed1ab_0            conda-forge
  soupsieve                  2.5           pyhd8ed1ab_1            conda-forge
  specutils                  1.11.0        pyhd8ed1ab_0            conda-forge
  statsmodels                0.14.0        py38h7f0c24c_2          conda-forge
  suitesparse                5.10.1        h9e50725_1              conda-forge
  sundials                   6.6.2         h777d08e_0              conda-forge
  tabulate                   0.9.0         pyhd8ed1ab_1            conda-forge
  tbb                        2021.10.0     h00ab1b0_2              conda-forge
  tblib                      2.0.0         pyhd8ed1ab_0            conda-forge
  tenacity                   8.2.3         pyhd8ed1ab_0            conda-forge
  termcolor                  2.3.0         pyhd8ed1ab_0            conda-forge
  tk                         8.6.13        noxft_h4845f30_101      conda-forge
  toml                       0.10.2        pyhd8ed1ab_0            conda-forge
  tomli                      2.0.1         pyhd8ed1ab_0            conda-forge
  toolz                      0.12.0        pyhd8ed1ab_0            conda-forge
  tornado                    6.3.3         py38h01eb140_1          conda-forge
  tqdm                       4.66.1        pyhd8ed1ab_0            conda-forge
  typing-extensions          4.8.0         hd8ed1ab_0              conda-forge
  typing_extensions          4.8.0         pyha770c72_0            conda-forge
  ucx                        1.15.0        h64cca9d_0              conda-forge
  uncertainties              3.1.7         pyhd8ed1ab_0            conda-forge
  unicodedata2               15.1.0        py38h01eb140_0          conda-forge
  urllib3                    2.0.7         pyhd8ed1ab_0            conda-forge
  vaex-core                  4.17.1        py38h8be23ca_0          conda-forge
  vaex-hdf5                  0.14.1        pyhd8ed1ab_0            conda-forge
  vaex-viz                   0.5.4         pyhd8ed1ab_0            conda-forge
  webencodings               0.5.1         pyhd8ed1ab_2            conda-forge
  wheel                      0.41.3        pyhd8ed1ab_0            conda-forge
  xcb-util                   0.4.0         hd590300_1              conda-forge
  xcb-util-image             0.4.0         h8ee46fc_1              conda-forge
  xcb-util-keysyms           0.4.0         h8ee46fc_1              conda-forge
  xcb-util-renderutil        0.3.9         hd590300_1              conda-forge
  xcb-util-wm                0.4.1         h8ee46fc_1              conda-forge
  xkeyboard-config           2.40          hd590300_0              conda-forge
  xorg-kbproto               1.0.7         h7f98852_1002           conda-forge
  xorg-libice                1.1.1         hd590300_0              conda-forge
  xorg-libsm                 1.2.4         h7391055_0              conda-forge
  xorg-libx11                1.8.7         h8ee46fc_0              conda-forge
  xorg-libxau                1.0.11        hd590300_0              conda-forge
  xorg-libxdmcp              1.1.3         h7f98852_0              conda-forge
  xorg-libxext               1.3.4         h0b41bf4_2              conda-forge
  xorg-libxrender            0.9.11        hd590300_0              conda-forge
  xorg-renderproto           0.11.1        h7f98852_1002           conda-forge
  xorg-xextproto             7.3.0         h0b41bf4_1003           conda-forge
  xorg-xf86vidmodeproto      2.3.1         h7f98852_1002           conda-forge
  xorg-xproto                7.0.31        h7f98852_1007           conda-forge
  xyzservices                2023.10.1     pyhd8ed1ab_0            conda-forge
  xz                         5.2.6         h166bdaf_0              conda-forge
  yaml                       0.2.5         h7f98852_2              conda-forge
  yaml-cpp                   0.8.0         h59595ed_0              conda-forge
  zict                       3.0.0         pyhd8ed1ab_0            conda-forge
  zipp                       3.17.0        pyhd8ed1ab_0            conda-forge
  zlib                       1.2.13        hd590300_5              conda-forge
  zlib-ng                    2.0.7         h0b41bf4_0              conda-forge
  zstd                       1.5.5         hfc55251_0              conda-forge

@elac-safran
Copy link
Author

Thanks for your reply. I installed it in a conda environmnent, with mamba:

mamba install cantera

What channels do you have configured for mamba? Specifically, did you install from the conda-forge or cantera channel?

Hello @bryanwweber.
All packages were pulled from conda-forge

@elac-safran
Copy link
Author

elac-safran commented Nov 13, 2023

I managed to reproduce the bug in a minimal environment:

mamba create -n cantera python=3.10 cantera -c conda-forge

In a python console:

>>> import cantera
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/config/mambaforge/envs/cantera/lib/python3.10/site-packages/cantera/__init__.py", line 4, in <module>
    from ._cantera import *
ImportError: libsundials_sunlinsollapackdense.so.4.6.1: cannot open shared object file: No such file or directory

Detail of the environment:

conda list

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.21.0               hd590300_0    conda-forge
ca-certificates           2023.7.22            hbcca054_0    conda-forge
cantera                   3.0.0           py310h4c3f389_2    conda-forge
fmt                       10.1.1               h00ab1b0_0    conda-forge
gmp                       6.3.0                h59595ed_0    conda-forge
hdf5                      1.14.2          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libblas                   3.9.0           19_linux64_openblas    conda-forge
libcantera                3.0.0                h2f7dcaf_2    conda-forge
libcblas                  3.9.0           19_linux64_openblas    conda-forge
libcurl                   8.4.0                hca28451_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_3    conda-forge
libgfortran-ng            13.2.0               h69a702a_3    conda-forge
libgfortran5              13.2.0               ha4646dd_3    conda-forge
libgomp                   13.2.0               h807b86a_3    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 h166bdaf_0    conda-forge
liblapack                 3.9.0           19_linux64_openblas    conda-forge
libnghttp2                1.58.0               h47da74e_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.24          pthreads_h413a1c8_0    conda-forge
libsqlite                 3.44.0               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_3    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libxml2                   2.11.5               h232c23b_1    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
metis                     5.1.0             h59595ed_1007    conda-forge
mpfr                      4.2.1                h9458935_0    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
numpy                     1.26.0          py310hb13e2d6_0    conda-forge
openssl                   3.1.4                hd590300_0    conda-forge
pip                       23.3.1             pyhd8ed1ab_0    conda-forge
python                    3.10.13         hd12c33a_0_cpython    conda-forge
python_abi                3.10                    4_cp310    conda-forge
readline                  8.2                  h8228510_1    conda-forge
ruamel_yaml               0.15.80         py310h2372a71_1009    conda-forge
setuptools                68.2.2             pyhd8ed1ab_0    conda-forge
suitesparse               5.10.1               h9e50725_1    conda-forge
sundials                  6.6.2                h777d08e_0    conda-forge
tbb                       2021.10.0            h00ab1b0_2    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tzdata                    2023c                h71feb2d_0    conda-forge
wheel                     0.41.3             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yaml-cpp                  0.8.0                h59595ed_0    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

@ischoegl
Copy link
Member

I can reproduce on macOS.

@bryanwweber
Copy link
Member

bryanwweber commented Nov 13, 2023

On my Mac (I assume similar on Linux), I have these files:

-rwxrwxr-x  2 bweber  staff    93K Nov  7 07:26 libsundials_sunlinsollapackdense.4.6.2.dylib
lrwxr-xr-x  1 bweber  staff    44B Nov 13 09:21 libsundials_sunlinsollapackdense.dylib -> libsundials_sunlinsollapackdense.4.6.2.dylib

So it does appear to be a linking error and/or that a different version of SUNDIALS is installed compared to what we linked against. I think the fix is to pin the Cantera package to 6.6.x instead of just 6.6 if these kinds of changes are going to happen for patch releases. Although honestly I'm surprised that this wasn't accounted for in the dependency pinning of Cantera at build time, in other words, I'm surprised that 6.6.2 was a valid solution for the environment...

I'm going to transfer this over to the conda-forge feedstock repo, thanks for reporting! Looks like I can't move it over automatically. No worries, it can stay here!

@elac-safran
Copy link
Author

Same on Linux, indeed:

lrwxrwxrwx 1 abc abc    41 Nov 13 09:24 libsundials_sunlinsollapackdense.so -> libsundials_sunlinsollapackdense.so.4.6.2
-rwxrwxr-x 2 abc abc 98032 Nov  7 13:20 libsundials_sunlinsollapackdense.so.4.6.2

@speth
Copy link
Member

speth commented Nov 15, 2023

I think this is a problem with either the SUNDIALS conda-forge recipe (https://github.com/conda-forge/sundials-feedstock) or SUNDIALS itself. All we specify directly in the Cantera recipe (https://github.com/conda-forge/cantera-feedstock/blob/main/recipe/meta.yaml) is a build requirement of SUNDIALS 6.6, and then link to libsundials_sunlinsollapackdense, with the exact file linked to determined by the SONAME embedded in the library. The runtime dependency is specified in the SUNDIALS meta.yaml:

build:
  number: 1
  run_exports:
    - {{ pin_subpackage('sundials', max_pin='x.x') }}

Which corresponds to an expectation that any version of 6.6.* is binary compatible. However, it appears that SUNDIALS specifies a SONAME down to the patch level (4.6.2) for this library and has incremented it between SUNDIALS 6.6.0 and 6.6.2.

I think typically, one would aim for binary compatibility for at least the the minor version (6.6.x) if not the major version (6.x.y). If SUNDIALS 6.6.2 is not binary compatible with 6.6.0, then this is correct, and the conda-forge package pinning is too loose. Otherwise, it would be helpful for the SUNDIALS to specify the SONAME to be as broadly compatible as possible.

One thing I did notice is that the SONAME for the CVODES library does just specify the major version. I'm not sure why the linear algebra sublibrary has such strict compatibility specified by contrast.

@speth
Copy link
Member

speth commented Nov 16, 2023

I think this may be addressed by LLNL/sundials#343, which will hopefully be included in Sundials 6.6.3 (assuming that happens and they don't go to 6.7.0). After that, we can specify 6.6.3 as the minimum build requirement, rebuild and get packages that work for 6.6.x where x >= 3.

I'm not sure if there's something else we should do in the meantime. I guess we could rebuild and specify sundials=6.6.2 as both a build and runtime dependency?

@bryanwweber
Copy link
Member

Thanks for looking into this @speth. I agree that the resolution is to pin to 6.6.2 and rebuild, then pin again for the next version.

speth added a commit to speth/conda-forge-cantera-feedstock that referenced this issue Nov 17, 2023
speth added a commit to speth/conda-forge-cantera-feedstock that referenced this issue Nov 17, 2023
@speth
Copy link
Member

speth commented Nov 18, 2023

I confirmed that the resulting packages work both on my M1 Mac and an amd64 Linux server. One thing to note is that if you already have the older build of the cantera package installed, you need to explicitly upgrade it, since it still declares compatibility with Sundials 6.6.*.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants