fuse: automatically use squashfuse for images, deprecate --sif-fuse #2451
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.
Description of the Pull Request (PR):
Deprecate the explicit
--sif-fuse
flag andsif fuse
directive forsingularity.conf
. These were previously used to enable experimental FUSE mount of SIF/SquashFS containers.Modify image handling so that we now try squashfuse mounts automatically, with fall back to temporary sandbox extraction, when:
singularity.conf
-or-Add a
--tmp-sandbox
flag to allow forcing extraction to a temporary sandbox when a kernel mount or FUSE mount would otherwise be used / attempted.This change exposed an issue via the e2e tests - where there is a failure after the starter is called, but before the container is entered successfully, the host cleanup may not be called. To address this, added the commit...
fix: ensure host cleanup runs when parent exits
When a container doesn't exit cleanly, or fails to start correctly, then the master process won't write into the cleanup socket to initiate cleanup in the host namespaces.
Prior to this commit, this caused the host cleanup to exit with an EOF error, leaving FUSE mounts in place in host namespaces.
The host cleanup process has SIGTERM set as its parent death signal, so we can trap this to ensure that cleanup runs for an 'unclean' exit where the master doesn't initate cleanup via the socket.
This fixes or addresses the following GitHub issues:
Before submitting a PR, make sure you have done the following:
make check
and tested this PR locally with amake test
, andmake testall
if possible (see CONTRIBUTING.md).