-
Notifications
You must be signed in to change notification settings - Fork 204
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
Module wrongly found in HMNS with user-Modulepath #4593
Comments
I wonder if @ocaisa can help out here a bit, I'm not sure I fully grasp the problem here... Are you basically saying that there's bad side effects of EasyBuild checking for existence of modules with the "full" module name? |
Yes, that's basically the issue here. |
At JSC, they arrange the setup for users to install modules via a module, and set an alias for The difference here seems to be that you are allowing users to define entire toolchains in their custom tree. This is something we created hooks to disallow at JSC. You'd need to create a custom setup to allow the user to install modules that extend the module path which also extend back into the system path. What you've done is shadow the system version which extends in 2 directions with something that only extends the module path in one direction. |
I actually just wanted to extend in one direction: If the user installs an own module relevant for HMNS the system modules are gone. This is acceptable especially because current EB doesn't allow an The bug here is that EB finds a module that isn't available given some modules are loaded. Not sure how to fix that without actually loading modules which might not even work when modules "in the middle" went missing. In this case all existing, but now hidden modules would be (re)installed by |
This seems complicated to me, you need the original module path ( I think |
What is that exactly? There is a single HMNS and the user should be able to install additional modules. So the limitation is that users shouldn't be able to install modules expanding the module path (e.g. compiler)?
That is to prevent exactly that, isn't it? Can you share that? |
Yes, that's it, users installing things can extend the module path is not allowed. That basically means that they can only install things using known and supported toolchains...but they can install whatever they want with that restriction. The hook to do this has evolved a lot since I was there, but you can find it at https://github.com/easybuilders/JSC/blob/2024/Custom_Hooks/eb_hooks.py |
I see. Currently it prevents user from installing GCCcore or anything not in a list of allowed toolchain names. I guess things like "GCC" or "icc" that also extend the module path were contained there before too Thanks! |
We have a site-wide software installation and allow custom modules, i.e.
--envvars-user-modules
To be able to build on top of that the user needs to modify it's module path.
For a base path like
/software/modules/all/Core
the user needs to doml use /software/modules/all
as otherwise EB won't be able to find modules in "Core". I mentioned this usability issue in #3703 (comment)However that now leads to a different problem I haven't seen before:
intel-compilers/2022.1.0
into the user envimpi/2021.6.0
(impi-2021.6.0-intel-compilers-2022.1.0.eb (module: Compiler/intel/2022.1.0 | impi/2021.6.0) is already installedHowever it is only installed in the global tree but not in my user env. Hence I cannot load the module:
$ ml intel-compilers/2022.1.0 impi/2021.6.0
failsMore curiously: It does find the impi installed in the global env but only via the full path:
So using the trace output I see that EasyBuild checks that full path:
Compiler/intel/2022.1.0/impi/2021.6.0 is already installed (module found), skipping
.However using the current modules that isn't available by the module name "impi/2021.6.0" which EB uses e.g. in the sanity check to load the module and what a user expects.
The text was updated successfully, but these errors were encountered: