Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overlay handling with fuse-overlayfs #1062

Merged
merged 36 commits into from
Sep 20, 2024

Commits on Jul 2, 2024

  1. feat: Implement FUSE-based overlay mount for containerexec and runexec

    By preserving all capabilities granted in the parent user namespace for the child process, we successfully utilize fuse-overlayfs (fusermount) to perform overlay mounts. This enhancement is effective when using containerexec and runexec, as benchexec creates containers using unshare rather than cloning a new process. Support for benchexec is currently under development.
    younghojan committed Jul 2, 2024
    Configuration menu
    Copy the full SHA
    be28a5f View commit details
    Browse the repository at this point in the history
  2. feat: Support FUSE-based overlay mount for benchexec

    By setting up the container's filesystem in the child process, bind mount-related errors in benchexec caused by fuse-overlayfs can be avoided. This change will not affect the normal operation of kernel overlayfs.
    younghojan committed Jul 2, 2024
    Configuration menu
    Copy the full SHA
    0facbcf View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2024

  1. Configuration menu
    Copy the full SHA
    85f02ca View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. Configuration menu
    Copy the full SHA
    69e929e View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2024

  1. feat: Clear ambient capabilities in drop_capabilities() and add const…

    …ants in libc.py
    younghojan committed Aug 4, 2024
    Configuration menu
    Copy the full SHA
    9818716 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3f69c41 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. Configuration menu
    Copy the full SHA
    4ee99a3 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2024

  1. chore: Fix bug in cap_permitted_to_ambient function

    The cap_permitted_to_ambient function was not handling the case where the "/proc/sys/kernel/cap_last_cap" file could not be read. This commit fixes the bug by adding a fallback value of 0 when reading the file fails.
    younghojan committed Aug 11, 2024
    Configuration menu
    Copy the full SHA
    a699b2f View commit details
    Browse the repository at this point in the history
  2. fix: Use single fusermount for all fuse-based overlays, and avoid mix…

    …ed usage of kernel and FUSE overlayfs.
    younghojan committed Aug 11, 2024
    Configuration menu
    Copy the full SHA
    8006c20 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2024

  1. chore: Add functions and extracted some code into functions, add comm…

    …ents, and made some logical refactoring.
    younghojan committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    195e4d0 View commit details
    Browse the repository at this point in the history
  2. chore: Refactor some functions related to fuse-based overlay mounts a…

    …nd add comments.
    younghojan committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    00f9cb8 View commit details
    Browse the repository at this point in the history
  3. chore: Refactor functions related to fuse-based overlay mounts and im…

    …prove comments
    younghojan committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    328aad4 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. chore: Refactor functions related to fuse-based overlay mounts and im…

    …prove comments
    younghojan committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    de86749 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2024

  1. Configuration menu
    Copy the full SHA
    a308c46 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. Configuration menu
    Copy the full SHA
    b941329 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2529120 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2024

  1. Configuration menu
    Copy the full SHA
    dde34ea View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2024

  1. fix: Specify stdin=subprocess.DEVNULL when launching the fuse-overlay…

    …fs subprocess to avoid pytest failures, along with some code changes.
    younghojan committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    b1a02d6 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. feat: Check if fuse-overlayfs meets the minimum version requirement, …

    …verify the existence of /dev/fuse when running inside a container, and optimize error handling.
    younghojan committed Aug 26, 2024
    Configuration menu
    Copy the full SHA
    1f6d696 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ba6bb91 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. fix: fix issue of checking for fuse-overlayfs functionality outside o…

    …f the path being overlaid and add a check before modifying TEST_TOKEN.
    younghojan committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    dc482b2 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2024

  1. chore: Refactor and improve test_triple_nested_runexec

    younghojan committed Aug 29, 2024
    Configuration menu
    Copy the full SHA
    e0aec8c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e0833b3 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2024

  1. Configuration menu
    Copy the full SHA
    147b4e2 View commit details
    Browse the repository at this point in the history
  2. Refactor and improve fuse-overlay related tests

    younghojan committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    b63db00 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2024

  1. Configuration menu
    Copy the full SHA
    38a0508 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5d2a349 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2024

  1. Safely encode string for fuse-overlayfs paths

    younghojan committed Sep 5, 2024
    Configuration menu
    Copy the full SHA
    a8a3516 View commit details
    Browse the repository at this point in the history
  2. Refactor determine_directory_mode function for fuse-overlayfs compati…

    …bility
    younghojan committed Sep 5, 2024
    Configuration menu
    Copy the full SHA
    34f57f1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2fd26ff View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    88db419 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2024

  1. Fix typo

    younghojan committed Sep 15, 2024
    Configuration menu
    Copy the full SHA
    2f9d52e View commit details
    Browse the repository at this point in the history
  2. Refactor handling of COV_CORE_SOURCE environment variable in TestRunE…

    …xecutorWithContainer
    younghojan committed Sep 15, 2024
    Configuration menu
    Copy the full SHA
    1c49af2 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2024

  1. Change internal paths used for fuse-overlayfs mounts

    The temp_base directory (.../temp) is the one that BenchExec uses
    to store output files of the tool, and after a run we iterate through it
    and copy files from there to the output directory.
    Thus we should not use it for internal stuff.
    But the work_base directory is fine for that.
    So let's move the fuse mountpoint to work_base as well.
    PhilippWendler committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    ea92000 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ec11b7f View commit details
    Browse the repository at this point in the history
  3. Detect and error out if temp is not hidden and we use fuse-overlayfs

    Somehow this causes deadlocks that we did not manage to solve
    even by making our own temp directory hidden.
    So let's at least avoid the deadlock and provide a proper error message.
    More background is in the discussions:
    #1062 (comment)
    #1062 (comment)
    PhilippWendler committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    33249f1 View commit details
    Browse the repository at this point in the history