Describe the bug
Since we have e2fsprogs version 1.45.2 I've noticed transient failures of certain tests when building e2fsprogs.
https://hydra.nixos.org/build/97065990
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: e2fsprogs
# a list of nixos modules affected by the problem
module:
we now have 1.45.3 in staging-next.
failures with 1.45.3: m_image_mmp m_mmp m_mmp_bad_csum m_mmp_bad_magic t_mmp_1on t_mmp_2off
@vcunat what do you think, disable the tests?
Probably, disable these individual tests. It would be nice to know a bit more about these failures and/or work with upstream, but I currently won't have capacity for that.
Apparently it was not an _immediate_ blocker so far (it seemed like one restart typically worked around that), but I do believe we should resolve it somehow within a couple staging-next iterations.
It seems to fail consistently on zfs for me, but work if I mount a tmpfs to /tmp.
Tests are now disabled in master.
Sorry, but the line 23 here says tests are enabled:
EDIT: Sorry again, I have looked around the wrong place...
I disabled only the failing tests, see the postPatch.
I could have been clearer in my earlier comment ;-)
I tried to update the system today and it is still failing:
d_fallocate_bigalloc: fallocate sparse files and big files with bigalloc: ok
Creating test_script...
349 tests succeeded 1 tests failed
Tests failed: m_hugefile
make[1]: *** [Makefile:396: test_post] Error 1
make[1]: Leaving directory '/build/e2fsprogs-1.45.3/tests'
make: *** [Makefile:420: check-recursive] Error 1
builder for '/nix/store/xvjgrwscnjmv6kglchy0ph1ws68x0c2l-e2fsprogs-1.45.3.drv' failed with exit code 2
cannot build derivation '/nix/store/q0f7m00hc269w7vksri6b8anrcr3fd0x-libarchive-3.4.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/fdxdfxspxdzr0lbms3wcgigapmrqawy4-cmake-3.15.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/5lphgzwxch2a85xj1w9k7xbr2yfxxz7n-aws-sdk-cpp-1.7.90.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/vapypxs4hb81frl2p1clzri19hwl7l9d-brotli-1.0.7.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/acr7w1m1anm35dmi1awzgfzjcz1sqbab-nix-2.3.drv': 1 dependencies couldn't be built
error: build of '/nix/store/acr7w1m1anm35dmi1awzgfzjcz1sqbab-nix-2.3.drv' failed
m_hugefile isn't in the removed set. Perhaps these depend on the FS used in the temporary dir?
Well, it is a possibility. My /tmp dir is an EXT2 filesystem.
So, I've just had it too. My /tmp dir was F2FS on one machine, TMPFS (over BTRFS) on another, then I loop mounted an EXT4 file onto the former and tried it again and now it works fine.
The MMP feature requires that the underlying storage device (e.g., the block device, or a file if you are using an image) that supports O_DIRECT. So for the MMP tests, it requires that /tmp is either tmpfs (for which we have a special case to skip the test) or it must be a file system which supports O_DIRECT. ext2 and btrfs doesn't support O_DIRECT.
Can we reenable the tests and only enable the ones with the particular requirements, or run them in a VM to ensure the right filesystem for them to work?
@lheckemann: I assume you got confused by the post saying
Tests are now disabled in master.
as the commit 151f52bf96a only disabled the problematic (mmp) tests.
Additionally running the excluded tests separately inside a VM – that sounds possible (we do NixOS VM tests already), but it would seem an overkill to me.
Most helpful comment
@lheckemann: I assume you got confused by the post saying
as the commit 151f52bf96a only disabled the problematic (mmp) tests.