Repository navigation
Conversation
… in a container shell right away, or with hooks that drop you at the start of the loop over easystack files, or after an eb command has finished with non-zero exit. Also support debugging of accelerator builds by selecting a single accelerator - even if the initial build was multi-accelerator. Finally, make sure that we can resume from a build tarball, so that if a lot of dependencies have already been built, we don't have to redo it.
… to reproduce the failure
…r that the preferred way of debugging is to start at the bot-build.slurm level
…rget or the tarball to resume from up front
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
casparvl
commented
Oct 12, 2026
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
…n interactive shell. Then, use read -p, and since this prints to stdout, do the whole selection conversation on stdout to avoid spreading it out
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
We often have issues reproducing build failures interactively. Currently, we have about three options:
EESSI-extend. This is the easiest, but also the most 'different' from the bot's build environment. It uses EESSI for dependencies, but it doesn't run in a build container.bot/inspect.shfrom the job dir of the failed build job. This script was designed to mimicbot/build.shand drop you into an interactive shell in the failed build environment. However, it is very much outdated, and keeping it in sync currently requires a lot of code duplication frombot/build.sh. An example of how out-of-sync it is: it does not have any GPU support (no NVIDIA GPU support either).bot/build.sh. It is also very time-consuming.Proposed solution
The solution presented here is to tightly integrate an option for interactive debugging into the
bot/build.sh, that will drop you into an interactive debugging shell ifEESSI_INTERACTIVE_BUILDis set. To get an environment that is as similar as possible, one should call the job script that the bot submits interactively. I.e. if a bot is configured to use the default, that would beEESSI_INTERACTIVE_BUILD=<mode> eessi-bot-software-layer/scripts/bot-build.slurm.modesupports three options:The idea is that this is ran from the job directory left behind by the bot, with the failing build. By default, it will resume from the latest tarball of the build step (this is selectable). If accelerators are used, it will run for the last accelerator in the list by default (this is also selectable).
Limitations
shared_fs_directorycan not be updated (what's there can be used as long as your user has read permissions to that dir).bot/build.shfromsoftware-layerhard-clones and links thesoftware-layer-scripts/bot/build.sh. That results in an exit, because the script runs withset -e. My current hack is just to replace thebot/build.shin the job dir with a one-liner:software-layer-scripts/bot/build.sh. We should fix this more properly, and maybe make the whole clone-business conditional onEESSI_INTERACTIVE_BUILDnot being set.