Skip to content

EasyBuild toolchain hierarhcy logic doesn't recognize llvm as toolchain #335

Description

@casparvl
  File "/home/cvanleeuwe/EESSI/eessi_test_venv/lib/python3.12/site-packages/reframe/utility/__init__.py", line 105, in _import_module_from_file
    return _do_import_module_from_file(filename, module_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/eessi_test_venv/lib/python3.12/site-packages/reframe/utility/__init__.py", line 70, in _do_import_module_from_file
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/cvanleeuwe/EESSI/test-suite/eessi/testsuite/tests/libs/blas/blas.py", line 168, in <module>
    class EESSI_BLAS_OpenBLAS_mt(EESSI_BLAS_base, EESSI_Mixin):
  File "/home/cvanleeuwe/EESSI/test-suite/eessi/testsuite/tests/libs/blas/blas.py", line 172, in EESSI_BLAS_OpenBLAS_mt
    module_name = parameter(get_blas_modules('OpenBLAS'))
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/test-suite/eessi/testsuite/tests/libs/blas/blas.py", line 59, in get_blas_modules
    matching_blises = sorted(select_matching_modules(blis_modules, mod))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/test-suite/eessi/testsuite/utils.py", line 242, in select_matching_modules
    mod_hierarchy = get_tc_hierarchy(mod_tcdict)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/test-suite/eessi/testsuite/utils.py", line 203, in get_tc_hierarchy
    hierarchy = get_toolchain_hierarchy(tcdict)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/eessi_test_venv/lib/python3.12/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 236, in cache_aware_func
    toolchain_hierarchy = func(toolchain, incl_capabilities)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cvanleeuwe/EESSI/eessi_test_venv/lib/python3.12/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 349, in get_toolchain_hierarchy
    subtoolchain_names = subtoolchains[current_tc_name]
                         ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'llvm'

Log file(s) saved in '/home/cvanleeuwe/EESSI/reframe_runs/logs/reframe_20260505_190426.log'
{EESSI/2025.06} (eessi_test_venv) cvanleeuwe@synth-hca:~/EESSI$ module av llvm

------------------------------------------------------------ /cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/generic/modules/all ------------------------------------------------------------
   AOCL-BLAS/5.1-llvm-compilers-20.1.8 (D)    FFTW/3.3.10-llvm-compilers-20.1.8     (D)    llvm-compilers/20.1.8                 LLVM/20.1.7-GCCcore-14.2.0        OpenBLAS/0.3.30-llvm-compilers-20.1.8 (D)
   BLIS/2.0-llvm-compilers-20.1.8      (D)    FlexiBLAS/3.4.5-llvm-compilers-20.1.8 (D)    LLVM/18.1.8-GCCcore-13.3.0-minimal    LLVM/20.1.8-GCCcore-14.3.0 (D)    OpenMPI/5.0.8-llvm-compilers-20.1.8   (D)

--------------------------------------------------------- This is a list of module extensions. Use "module --nx avail ..." to not show extensions. ----------------------------------------------------------
    gllvm (E)

These extensions cannot be loaded directly, use "module spider extension_name" for more information.

not sure how we get the toolchain, but the true toolchain name here is llvm-compilers, so includes a dash. Could that be the issue?

In any case, we should avoid this becoming a hard error. It's better to then just skip the test...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions