fuse: permit SIF/Squashfs mount via FUSE in all native mode flows #2450
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):
Broaden the
--sif-fuse
/sif fuse = yes
functionality so that it can be used to mount SIF/SquashFS container images with FUSE in all native mode flows. Previously this was only supported in non-setuid user namespace dependent flows.Mounts and cleanup are performed as below:
squashfuse[_ll]
, into a nested temporary directory by the launcher routines in the initial unprivileged CLI process.This approach is fairly robust against SIGKILL. As long as the lazy unmount in the host namespace has fired, a SIGKILL of the container process / runtime parent process will not leave orphan mounts, FUSE processes, or namespaces.
If processes are SIGKILL-ed during container startup, then orphan mounts / FUSE processes may be left over. There is no easy way around this without moving FUSE mounts deeper into the runtime engine, which then requires FUSE3 (which would preclude later support for extfs FUSE mounts via fuse2fs).
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).