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

Reply via email to