Closed simonLeary42 closed 5 months ago
This was a subtle bug that took sometime to track down. Please try the PR684 branch to see if it works for you. Thanks very much for a test case that shows the issue!
My test case is still showing the issue after using spider
built from PR684
I'm using Lua 5.1 and TCL 8.6 on Ubuntu 20.04
please run
$ $LMOD_DIR/spider -o dbT /home/simon/lmod-bug-test/root > dbT.lua
and paste the file dbT.lua here
timestampFn = {
false,
}
dbT = {
foobar = {
["/home/simon/lmod-bug-test/newdir/foobar/1.2.3.lua"] = {
Version = "1.2.3",
fullName = "foobar/1.2.3",
hidden = false,
mpath = "/home/simon/lmod-bug-test/newdir",
pV = "000000001.000000002.000000003.*zfinal",
parentAA = {
{
"newdir/1.0",
},
},
pathA = {
["/opt/foobar"] = 1,
},
wV = "000000001.000000002.000000003.*zfinal",
},
},
newdir = {
["/home/simon/lmod-bug-test/root/newdir/1.0.lua"] = {
Version = "1.0",
fullName = "newdir/1.0",
hidden = false,
mpath = "/home/simon/lmod-bug-test/root",
pV = "000000001.*zfinal",
wV = "000000001.*zfinal",
},
},
}
provideByT = {}
Thanks! I'll look to see what happened
I found the issue and fixed it for me. This issue had to do with the way that the dbT table was computed. First the spiderT table is computed and this is converted into dbT. Since building spiderT involves walking the module tree, the current known directories in $MODULEPATH are known. However building dbT doesn't have to walk the module tree structure so $MODULEPATH wasn't correct. This has now been fixed in the PR684 branch. Please update and test this branch (PR684) to see if it works for you.
Thanks for submitting this bug as it was a subtle one!
O.K. to close this issue?
The PR684 branch has been merged into the main branch and has been released as Lmod 8.7.36
Consider the following module tree:
with the following contents:
module avail
showsfoobar/1.2.3
as hidden:spiderT
also showsfoobar/1.2.3
as hidden:but strangely, json spider cache does not mark
foobar/1.2.3
as hidden:$ /opt/lmod/lmod/lmod/libexec/spider -o spider-json /home/simon/lmod-bug-test/root | python -m json.tool
I thought
spiderT
andspider-json
stored all the same information, just in a different layout. Is that not true?