Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
base: 8fce8a930cdb
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 12efcc2dee4f
Choose a head ref
  • 4 commits
  • 5 files changed
  • 2 contributors

Commits on Mar 15, 2019

  1. nixos/overlayfs: add test

    bachp committed Mar 15, 2019
    Copy the full SHA
    a8307b9 View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2019

  1. qemu: Apply interim fix for overlayfs + O_NOATIME

    Our VM tests and everything related to our virtualisation infrastructure
    is currently broken if used with kernel 4.19 or later.
    
    The reason for this is that since 4.19, overlayfs uses the O_NOATIME
    flag when opening files in lowerdir and this doesn't play nice with the
    way we pass the Nix store to our QEMU guests.
    
    On a NixOS system, paths in the Nix store are typically owned by root
    but the QEMU process is usually run by an ordinary user. Using O_NOATIME
    on a file where you're not the owner (or superuser) will return with
    EPERM (Operation not permitted).
    
    This is exactly what happens in our VM tests, because we're using
    overlayfs in the guests to allow writes to the store.
    
    Another implication of this is that the default kernel version for NixOS
    19.03 has been reverted to Linux 4.14.
    
    Work on getting this upstream is still ongoing and the patch I posted
    previously was incomplete, needs rework and also some more review from
    upstream maintainers - in summary: This will take a while.
    
    So instead of rushing in a kernel patch to nixpkgs, which will affect
    all users of overlayfs, not just NixOS VM tests, I opted to patch QEMU
    for now to ignore the O_NOATIME flag in 9p.
    
    I think this is also the least impacting change, because even if you
    care about whether access times are written or not, you get the same
    behaviour as with Linux 4.19 in conjunction with QEMU.
    
    Signed-off-by: aszlig <aszlig@nix.build>
    Fixes: #54509
    aszlig committed Mar 18, 2019
    Copy the full SHA
    4c1ddb3 View commit details
    Browse the repository at this point in the history
  2. linuxPackages: 4.14 -> 4.19

    This reverts commit 048c36c.
    
    With the patch applied for fixing the overlayfs bug in QEMU, there
    really shouldn't stand anything in our way to use 4.19 as the default
    kernel.
    
    Signed-off-by: aszlig <aszlig@nix.build>
    aszlig committed Mar 18, 2019
    Copy the full SHA
    9a395a4 View commit details
    Browse the repository at this point in the history
  3. Merge overlayfs fix, LTS kernel bump and test

    In Linux 4.19 there has been a major rework of the overlayfs
    implementation and it now opens files in lowerdir with O_NOATIME, which
    in turn caused issues in our VM tests because the process owner of QEMU
    doesn't match the file owner of the lowerdir.
    
    The crux here is that 9p propagates the O_NOATIME flag to the host and
    the guest kernel has no way of verifying whether that flag will lead to
    any problems beforehand.
    
    There is ongoing work to possibly fix this in the kernel, but it will
    take a while until there is a working patch and consensus.
    
    So in order to bring our default kernel back to 4.19 and of course make
    it possible to run newer kernels in VM tests, I'm merging a small QEMU
    patch as an interim solution, which we can drop once we have a working
    fix in the next round of stable kernels.
    
    Now we already had Linux 4.19 set as the default kernel, but that was
    subsequently reverted in 048c36c
    because the patch we have used was the revert of the commit I bisected a
    while ago.
    
    This patch broke overlayfs in other ways, so I'm also merging in a VM
    test by @bachp, which only tests whether overlayfs is working, just to
    be on the safe side that something like this won't happen in the future.
    
    Even though this change could be considered a moderate mass-rebuild at
    least for GNU/Linux, I'm merging this to master, mainly to give us some
    time to get it into the current 19.03 release branch (and subsequent
    testing window) once we got no new breaking builds from Hydra.
    
    Cc: @samueldr, @lheckemann
    
    Fixes: #54509
    Fixes: #48828
    Merges: #57641
    Merges: #54508
    aszlig committed Mar 18, 2019
    Copy the full SHA
    12efcc2 View commit details
    Browse the repository at this point in the history