-
Notifications
You must be signed in to change notification settings - Fork 211
Closed
Labels
Milestone
Description
When processing Cray specific easyconfigs in combination with an Hierarchical Module Naming Scheme parsing of the easyconfig file fails. (I actually encountered this when using the "--list-installed-software" option which in turn is parsing all easyconfigs. Not trying this on a Cray machine.)
Steps to reproduce:
eb HPL-2.3-CrayCCE-19.06.eb -D --module-naming-scheme HiearchicalMN
Traceback Error Message:
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/main.py", line 502, in <module>
main()
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/main.py", line 350, in main
easyconfigs, generated_ecs = parse_easyconfigs(paths, validate=not options.inject_checksums)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/framework/easyconfig/tools.py", line 413, in parse_easyconfigs
easyconfigs.extend(process_easyconfig(ec_file, **kwargs))
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 1791, in process_easyconfig
ec = EasyConfig(spec, build_specs=build_specs, validate=validate, hidden=hidden)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 496, in __init__
self.full_mod_name = mns.det_full_module_name(self)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2334, in det_full_module_name
require_result=require_result)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2306, in _det_module_name_with
mod_name = mns_method(ec)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/tools/module_naming_scheme/hierarchical_mns.py", line 87, in det_full_module_name
return os.path.join(self.det_module_subdir(ec), self.det_short_module_name(ec))
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/tools/module_naming_scheme/hierarchical_mns.py", line 139, in det_module_subdir
tc_comp_name, tc_comp_ver = self.det_toolchain_compilers_name_version(tc_comps)
File "/Applic.HPC/Easybuild/ivybridge/2019a/software/EasyBuild/4.1.2/lib/python2.7/site-packages/easybuild/tools/module_naming_scheme/hierarchical_mns.py", line 110, in det_toolchain_compilers_name_version
res = (tc_comps[0]['name'], self.det_full_version(tc_comps[0]))
TypeError: 'NoneType' object has no attribute '__getitem__'
So far I could narrow it down to this:
det_toolchain_compilers()
fromtools/module_naming_scheme/toolchain.py
is returning a list with a NoneType object -->[None]
(instead of just None?)- The list with None comes from the call to
det_toolchain_element_details()
. I don't know if this is what's wong, but there is a mismatch betweentc_ec[name]
("CrayCCE") andelem
("PrgEnv-cray") --> (l. 77 in toolchain.py) Should these be the same here?