Use sandbox mode which is more robust in singularity cleanup phase#193
Use sandbox mode which is more robust in singularity cleanup phase#193julianmorillo wants to merge 15 commits intoEESSI:mainfrom
Conversation
|
@julianmorillo Is there any documentation that would explain why this works better? No strong objections as long as it works, I just don't see why this would work better (though it seems to based on EESSI/dev.eessi.io-riscv#35 (comment)) |
|
Could we use this optionally? It's been tested on RISC-V, but we haven't seen this on other systems. So, to not cause problems on the other systems, maybe the safest way forward would be to add an option and use that where needed. |
|
@boegel The critical mechanism here (from the documentation above) is that SIF images require mounting (via FUSE). In the documentation above it can be read: "SIF/SquashFS container images will now be mounted with squashfuse… when kernel mounts are not available."
The documentation above also explains that if mounting fails or is unsuitable --> Singularity uses a sandbox: “If the FUSE mount fails, Singularity will fall back to extracting the container to a temporary sandbox.” and “fallback to extraction to a temporary sandbox directory”.
|
This makes sense to me. The sandbox mode is probably (much) slower, especially when multiple jobs are extracting that image to a shared filesystem at the same time. |
I already made it optional through an environment variable that should be defined in |
…er-scripts into build-sandbox
|
Tested successfully in EESSI/dev.eessi.io-riscv#103, and EESSI/dev.eessi.io-riscv#105 |
bedroge
left a comment
There was a problem hiding this comment.
Could you move the eb_hooks.py changes to a separate PR, as they are unrelated?
The sandbox stuff looks good to me, though it would be good to also add an option to the script itself, as most of these things have a corresponding option. -s is already taken for --save, so we need another one (-z? or only use a long option --sandbox?)
No description provided.