Commit e8a89cf3 by Christian Brauner Committed by Stéphane Graber

tests: skip unpriv tests on broken overlay module

This mainly affects Trusty. The 3.13 kernel has a broken overlay module which does not handle symlinks correctly. This is a problem for containers that use an overlay based rootfs since safe_mount() uses /proc/<pid>/fd/<fd-number> in its calls to mount(). Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent cb9fe871
...@@ -27,6 +27,41 @@ if [ $(id -u) -ne 0 ]; then ...@@ -27,6 +27,41 @@ if [ $(id -u) -ne 0 ]; then
echo "ERROR: Must run as root." echo "ERROR: Must run as root."
exit 1 exit 1
fi fi
# Test if we're using an overlayfs module that handles symlinks correctly. If
# not, we skip these tests since overlay clones will not work correctly.
if modprobe -q overlayfs; then
TMPDIR=$(mktemp -d)
MOUNTDIR="${TMPDIR}/ovl_symlink_test"
mkdir ${MOUNTDIR}
mount -t tmpfs none ${MOUNTDIR}
mkdir "${MOUNTDIR}/lowerdir" "${MOUNTDIR}/upperdir" "${MOUNTDIR}/overlayfs"
mount -t overlayfs -o lowerdir="${MOUNTDIR}/lowerdir",upperdir="${MOUNTDIR}/upperdir" none "${MOUNTDIR}/overlayfs"
CORRECT_LINK_TARGET="${MOUNTDIR}/overlayfs/dummy_file"
exec 9> "${CORRECT_LINK_TARGET}"
DETECTED_LINK_TARGET=$(readlink -q /proc/$$/fd/9)
# cleanup
exec 9>&-
umount "${MOUNTDIR}/overlayfs"
umount ${MOUNTDIR}
rmdir ${MOUNTDIR}
# This overlay module does not correctly handle symlinks, so skip the
# tests.
if [ "${DETECTED_LINK_TARGET}" != "${CORRECT_LINK_TARGET}" ]; then
exit 0
fi
fi
which newuidmap >/dev/null 2>&1 || { echo "'newuidmap' command is missing" >&2; exit 1; } which newuidmap >/dev/null 2>&1 || { echo "'newuidmap' command is missing" >&2; exit 1; }
DONE=0 DONE=0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment