openforcefield / openff-benchmark

Comparison benchmarks between public force fields and Open Force Field Initiative force fields
MIT License
11 stars 2 forks source link

Mamba solves pull in a bad HDF5/h5py combination #105

Open j-wags opened 2 years ago

j-wags commented 2 years ago

I tried switching our CI over to mamba and got a symbol error. I also got the same when I made a build in a local linux docker container. Error text pasted below, since the CI log will eventually expire.

Root cause seems to be https://github.com/conda-forge/h5py-feedstock/issues/103

Run pytest -v --cov=openff --cov-report=xml --cov-config=setup.cfg openff/benchmark/tests/
  pytest -v --cov=openff --cov-report=xml --cov-config=setup.cfg openff/benchmark/tests/
  shell: /usr/bin/bash -l {0}
  env:
    CI_OS: ubuntu-latest
    CONDA_PKGS_DIR: /home/runner/conda_pkgs_dir
Traceback (most recent call last):
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/bin/pytest", line 11, in <module>
    sys.exit(console_main())
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 185, in console_main
    code = main()
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 143, in main
    config = _prepareconfig(args, plugins)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 319, in _prepareconfig
    pluginmanager=pluginmanager, args=args
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/helpconfig.py", line 100, in pytest_cmdline_parse
    config: Config = outcome.get_result()
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1003, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1283, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1172, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/pluggy/manager.py", line 299, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 194, in load
    module = import_module(match.group('module'))
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 170, in exec_module
    exec(co, module.__dict__)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/qcfractal/__init__.py", line 5, in <module>
    from . import interface
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 170, in exec_module
    exec(co, module.__dict__)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/qcfractal/interface/__init__.py", line 5, in <module>
    from . import collections, data, models, util
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 170, in exec_module
    exec(co, module.__dict__)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/qcfractal/interface/collections/__init__.py", line 7, in <module>
    from .dataset_view import DatasetView, HDF5View, PlainTextView, RemoteView
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 170, in exec_module
    exec(co, module.__dict__)
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/qcfractal/interface/collections/dataset_view.py", line 14, in <module>
    import h5py
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/h5py/__init__.py", line 33, in <module>
    from . import version
  File "/usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/h5py/version.py", line 15, in <module>
    from . import h5 as _h5
  File "h5py/h5.pyx", line 1, in init h5py.h5
ImportError: /usr/share/miniconda/envs/openff-benchmark-optimization/lib/python3.7/site-packages/h5py/defs.cpython-37m-x86_64-linux-gnu.so: undefined symbol: H5Pset_fapl_ros3
Error: Process completed with exit code 1.
mattwthompson commented 2 years ago

This can probably be addressed with the same pin as from here: https://github.com/openforcefield/openff-bespokefit/issues/162#issuecomment-1108840723


$ mamba install "h5py <3.2"