conda-forge / tectonic-feedstock

A conda-smithy repository for tectonic.
BSD 3-Clause "New" or "Revised" License
2 stars 4 forks source link

Intermittent issue with libicu when installing tectonic via conda-forge on GitHub Actions #59

Open dfm opened 1 year ago

dfm commented 1 year ago

Solution to issue cannot be found in the documentation.

Issue

I'm not sure if this is the right place to open this issue, and I'm not sure that I have all the relevant info to debug, but wanted to post here just in case anyone had tips or similar experiences. I've been running into intermittent issues with our use of tectonic in our showyourwork project. Every once in a while, the macos tests fail at the point where we execute tectonic, with the following error:

E           dyld[13329]: Library not loaded: '@rpath/libicuuc.70.dylib'
E             Referenced from: '/Users/runner/conda_pkgs_dir/tectonic-0.11.0-h9ef1e01_0/bin/tectonic'
E             Reason: tried: '/Users/runner/conda_pkgs_dir/tectonic-0.11.0-h9ef1e01_0/bin/../lib/libicuuc.70.dylib' (no such file), '/Users/runner/conda_pkgs_dir/tectonic-0.11.0-h9ef1e01_0/bin/../lib/libicuuc.70.dylib' (no such file), '/usr/local/lib/libicuuc.70.dylib' (no such file), '/usr/lib/libicuuc.70.dylib' (no such file)

For reasons that I won't go into, we install tectonic using conda (within a snakemake workflow) with the environment file below. I assume this is some brew vs. conda issue, but it looks like this recipe should also install icu as a dependency.

This isn't an urgent issue—I can typically just re-run the tests and everything is fine—but any tips would be appreciated!

Installed packages

# environment.yml
channels:
  - conda-forge
  - defaults
dependencies:
  - conda-forge::tectonic=0.11.0

Environment info

# I don't easily have access to this, but can provide if needed.
pkgw commented 1 year ago

Thanks for reporting, Dan!

It is very odd to me that this would be an intermittent issue. I have a lot of trouble seeing how that would happen with this sort of error. But, I suspect that your hunch is right that it has something to do with brew/conda intermixing. If that's the case, I'm not sure if there will be anything we can do in this package to smooth it out, but it would be nice to at least understand the problem more clearly.

If you can get logs from similar runs where one fails and the other doesn't, perhaps it would be helpful to compare them? My least-bad guess is that maybe there is some kind of asynchronous installation action that means that sometimes some conflicting library is installed before Tectonic is run ... but installations generally just don't work that way at all. Or maybe some kind of issue with state being sneakily cached between different CI runs?