Hi Loris,
On 17/04/2020 11:01, Loris Bennett wrote:
Hi Kenneth,
Kenneth Hoste <[email protected]> writes:
Hi Loris,
I can't see anything that could explain the problem you're seeing, so I'm
intrigued to figure out what's going on...
Any chance you can share a debug log for this issue (collected with "eb
--debug")?
Feel free to send it to me off-list if you feel you need to, I'll just extract
the relevant bits when I reply...
Here's the gzipped log file with created with --debug:
I notice the log file contains a list of modules which starts with
; stderr: /trinity/shared/easybuild/modules/all:
which has following entries for Java:
Java/1.8.0_162
Java/1.8.0_192
Java/1.8.0_231
Java/11(@Java/11.0.2)
Java/11.0.2
Is some sort of alias thingy like
Java/8(@Java/1.8.231)
missing?
Cheers,
Loris
Yes, that's the culprit, indeed...
The reason that "module load Java/1.8" just works outside of EasyBuild
is due to the partial version matching feature (also known as "extended
defaults") that recent Lmod versions have: if you use a module name for
which there is no exact match, Lmod will (by default) load the latest
version that partially matches (so Java/1.8.0_231 in this case).
In EasyBuild, this feature is explicitly disabled though (by setting the
$LMOD_EXTENDED_DEFAULT environment variable to 'no'), because we want to
ensure that there's a module file (or wrapper) for every dependency.
In this case, there is no module file or wrapper for Java/1.8 in your
environment.
It seems like you were hit by a bug we fixed in EasyBuild v3.9.1 (see
[1]), where the .modulerc files (that defines module wrappers like
Java/1.8 and Java/11) were being blindly overwritten, rather than
appending aliases to an existing .modulerc file. The Java/1.8 wrapper
probably got removed when installing the Java/11 wrapper.
You should be able to fix the problem you're seeing by re-installing the
Java/1.8 wrapper with "eb Java-1.8.eb" (may need --force, but I don't
think so; may need --robot if the underlying Java/1.8.x module is not
installed yet, since the Java/1.8 is updated to newer 1.8.x versions),
with a sufficiently recent EasyBuild version.
Afterwards, you should see an entry like "Java/8(@Java/1.8.231)" in the
output of "module --terse avail Java/", and the problem you were seeing
should be resolved...
regards,
Kenneth
[1] https://github.com/easybuilders/easybuild-framework/pull/2848