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
When spack install checks for buildcaches only add urls for current arch #14467
When spack install checks for buildcaches only add urls for current arch #14467
Conversation
closes #14466 |
@gartung It seems like this commit has broken automated pipelines for me, at the point when they try to install dependencies from the mirror. Here's an excerpt from a failed job log:
Does that ring any bells for you? |
@scottwittenburg Sorry about that. I am reverting now. I should have done more thorough testing on it. @eugeneswalker asked for it to be merged so I assumed it worked for him. |
@gartung No worries, thanks for reverting in such a timely fashion 😄 |
I should really just make a pull request with the real fix. How can I reproduce your error? |
I'll have to try to reproduce outside of a pipeline, but it seems like it would happen just attempting to install any spec when you have a mirror configured and the mirror has a |
OK. I will try to reproduce it locally. |
I just reproduced it by the following steps:
|
Can you try out #14639 |
spack install command calls spack.package.try_install_from_binary_cache() which calls spack.binary_distribution.get_specs().
spack.binary_distribution.get_specs() was modified in
#13002
to allow listing and installing buildcaches for macOS on a linux host.
In the case where a mirror contains buildcaches for multiple OSes the spack install command can spend more time downloading all of the specs from the build_cache directory than it takes to install the buildcache. The is especially true when using pipelines and the buildcache download directory is cleared between steps.
I modified the get_specs() command to accept a filter option and pass the current OS as the filter option when get_specs() is called from spack.package.try_install_from_binary_cache()