Skip to content

do not determine number of iterations in easyblock constructor (which is too early), but in run_all_steps#4952

Merged
boegel merged 2 commits intoeasybuilders:developfrom
branfosj:fix_iter_cnt
Jul 4, 2025
Merged

do not determine number of iterations in easyblock constructor (which is too early), but in run_all_steps#4952
boegel merged 2 commits intoeasybuilders:developfrom
branfosj:fix_iter_cnt

Conversation

@branfosj
Copy link
Copy Markdown
Member

@branfosj branfosj commented Jul 4, 2025

#4919 calls det_iter_cnt() too early.

If we call det_iter_cnt() in the __init__ then we do this before we initialise the easyblock for the specific bit of software, so we do not know how many iterations there are. This means we fix on one iteration.

@boegel boegel added the bug fix label Jul 4, 2025
@boegel boegel added this to the 5.1.1 milestone Jul 4, 2025
boegel
boegel previously approved these changes Jul 4, 2025
@boegel
Copy link
Copy Markdown
Member

boegel commented Jul 4, 2025

Without this fix, the installation of GCCcore is broken, because not enough iterations are being done in the build.

More specifically, the additional build stages that the easyblock should do for the nvptx and amdgcn OpenMP offload targets were no longer being done, because the changes to configopts and buildopts that are done in run_all_steps in the custom easyblock for GCC were being done after det_iter_cnt was called.
That lead to some part of the GCC installation being missing, which was caught by the sanity check:

== FAILED: Installation ended unsuccessfully: Sanity check failed: no file found at 'bin/nvptx-none-as' in /tmp/software/GCCcore/13.3.0

@branfosj Thanks a lot for figuring this out!

@boegel
Copy link
Copy Markdown
Member

boegel commented Jul 4, 2025

This bug also affects other software-specific easyblocks where we get creative with iterations, like FFTW, GROMACS, ELPA

Copy link
Copy Markdown
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel boegel changed the title do not call det_iter_cnt() in the __init__ do not call det_iter_cnt() in the __init__, but in run_all_steps Jul 4, 2025
@boegel boegel changed the title do not call det_iter_cnt() in the __init__, but in run_all_steps do not determine number of iterations in easyblock constructor (which is too early), but in run_all_steps Jul 4, 2025
@boegel boegel merged commit 003895b into easybuilders:develop Jul 4, 2025
37 checks passed
@branfosj branfosj deleted the fix_iter_cnt branch July 4, 2025 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants