Skip to content

pressure-vessel: Improve robustness of creating temporary rootfs

Simon McVittie requested to merge wip/smcv/sr495 into master
  • pressure-vessel: Warn if we have to fall back to copying

    pressure-vessel is designed to use hard-links when preparing the container runtime, and we rely on them to get fast startup and not waste disk space. If we can't link() a file to its counterpart in the temporary runtime directory, log a warning so that people know they are in a situation that shouldn't really happen.

    To avoid spurious warnings if the copy fallback would also have failed with a fatal error, defer the warning until after the first copy fallback has succeeded. That way, if we can't write to the variable data directory at all (for example EROFS or something), we won't complain about link() failing, just show the fatal error from the copy fallback also failing.

    Helps: https://github.com/ValveSoftware/steam-runtime/issues/495

  • pressure-vessel: Don't copy extended attributes

    If we fall back to copying between btrfs and non-btrfs filesystems, then we can fail to copy the btrfs.compression xattr; or if we are copying from a filesystem that supports user xattrs to a filesystem that does not (such as tmpfs), then we obviously won't be able to copy those.

    We happen to know that pressure-vessel containers don't care about extended attributes, so it's not a problem if we can't copy them.

    Helps: https://github.com/ValveSoftware/steam-runtime/issues/495

Merge request reports

Loading