-
Notifications
You must be signed in to change notification settings - Fork 203
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
make sure no modules are loaded when EasyBuild is started #153
Comments
comment by @nudded: Also non-dependencies? You want nothing loaded when building begins? or only things that are present in the repository should not be loaded? |
I think you should check this with the SOFTROOT/EBROOT stuff. If any variable like that is set, a module built with EasyBuild is loaded, and may yield surprises. |
comment by @nudded: Yeah it seems like a sane sanitycheck. if it only checks those variables should be fairly simple to implement. |
This will have to wait because of https://bugzilla.redhat.com/show_bug.cgi?id=834580 .
The only way around this is to load a couple of modules before running EasyBuild. Implementing the feature this ticket asks for would break that workaround. We need to figure out the issue with environment-modules first, and get it fixed upstream. |
was fixed in pull request #73, but reverted in pull request #76 because of https://bugzilla.redhat.com/show_bug.cgi?id=834580 |
A patch is available now for the We should probably wait to implement the loaded modules check in EasyBuild until a new modules release is available that includes this patch. Then, we can document/mention the need for (at least) this particular version of environment modules in the EasyBuild FAQ, so that people can easily resolve this issue when they run into it. |
Along with this, we should also support an override parameter for this check, so that a user can allow having modules loaded when using EasyBuild, for whatever reason (but, the check should be enabled by default, obviously). |
Update on this ancient issue: I think it makes sense to have an option to unload everything except a set of modules listed in a whitelist. At least in our setup that will be a nice way to sanitize the environment without breaking other things. |
@damianam use sticky modules? |
We have a module for setting up EB related variables. And another one for GC3Pie. And another one for EB itself. I don't want to make them sticky and force me to use |
You could just make sure there are no modules loaded that define |
It is clean in our case, but if somebody mixes EB modules with other modules that shouldn't be loaded when installing software it wouldn't be enough. Besides that, it would unload the EasyBuild module (Edit to add: if installed by EasyBuild), so you would have to make at least one exception already |
I think you'd be safe if you only unloaded the modules after the EB process has finished grabbing its configuration |
I think I just hit this problem with a Because it is counterintuive, it would be helpful that at least some warning was issued at the beginning saying a dependency shouldn't be loaded (in any case, why doesn't the sanity check find/reload the dependency when it was already loaded?) |
I also hit the same problem when trying to build I would personally prefer to have EB purge the environment if modules are loaded (with the exception of the EB module) and then restore them after the installation is completed. This behavior can be overridden with a flag for those who want to keep the modules loaded. |
I guess different sites/people would have differences preferences here... We could implement a detection mechanism for this (that ignores a loaded EasyBuild module), with a couple of different options as to how EasyBuild should respond:
The detection mechanism should probably look at I guess we'll also need some kind of ignore list ( |
fixed in #2228, let's follow up there in context of the proposed enhancements... |
(old internal ticket 346)
EasyBuild should check whether (software) modules (built with EasyBuild) were loaded when it stars, and refuse to continue if it detects it.
Having modules loaded outside of EasyBuild could make or break build, and the result may be different with an environment in which no modules were loaded.
Currently, it only checks whether the software it is trying to built is loaded, but it should do the same for dependencies and non-dependencies.
The text was updated successfully, but these errors were encountered: