libcontainer: default mount propagation correctly #1598
Merged
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.
The code in prepareRoot (
runc/libcontainer/rootfs_linux.go
Lines 599 to 605 in e385f67
attempts to default the rootfs mount to
rslave
. However, since the specconversion has already defaulted it to
rprivate
, that code doesn'tactually ever do anything.
This changes the spec conversion code to accept "" and treat it as 0.
Implicitly, this makes rootfs propagation default to
rslave
, which isa part of fixing the moby bug moby/moby#34672
Alternate implementatoins include changing this defaulting to be
rslave
and removing the defaulting code in prepareRoot, or skippingthe mapping entirely for "", but I think this change is the cleanest of
those options.
cc @cyphar, this is somewhat similar to #1500 and fixes a similar problem.