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.)
eb HPL-2.3-CrayCCE-19.06.eb -D --module-naming-scheme HiearchicalMN
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__'
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:
Traceback Error Message:
So far I could narrow it down to this:
det_toolchain_compilers()fromtools/module_naming_scheme/toolchain.pyis returning a list with a NoneType object -->[None](instead of just None?)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?