Subject: bug#43806: statfs is failing when running make check

From: Fredrik Salomonsson <[email-masked]>
Date: Sun, 04 Oct 2020 17:35:16 -0700

Hi,

When building guix from git in a clean local copy (run `sudo git clean
-dfx` first) using this command:
```
guix environment guix -- sh -c './bootstrap && ./configure --localstatedir=/var && make -j16 && make check'
```
One test in `tests/syscalls.scm` is failing.

Here is the log from just the `make check` command:

```
make  check-recursive
make[1]: Entering directory '/home/plattfot/projects/guix'
Making check in po/guix
make[2]: Entering directory '/home/plattfot/projects/guix/po/guix'
make[2]: Leaving directory '/home/plattfot/projects/guix/po/guix'
Making check in po/packages
make[2]: Entering directory '/home/plattfot/projects/guix/po/packages'
make[2]: Leaving directory '/home/plattfot/projects/guix/po/packages'
make[2]: Entering directory '/home/plattfot/projects/guix'
Compiling Scheme modules...
make  check-TESTS check-local
make[3]: Entering directory '/home/plattfot/projects/guix'
make[4]: Entering directory '/home/plattfot/projects/guix'
PASS: tests/accounts.scm
PASS: tests/base16.scm
PASS: tests/base32.scm
PASS: tests/base64.scm
PASS: tests/bournish.scm
PASS: tests/builders.scm
PASS: tests/build-utils.scm
PASS: tests/cache.scm
PASS: tests/challenge.scm
PASS: tests/channels.scm
PASS: tests/combinators.scm
PASS: tests/containers.scm
PASS: tests/cpan.scm
SKIP: tests/cpio.scm
PASS: tests/cran.scm
PASS: tests/crate.scm
PASS: tests/cve.scm
PASS: tests/debug-link.scm
PASS: tests/derivations.scm
PASS: tests/discovery.scm
PASS: tests/elpa.scm
PASS: tests/file-systems.scm
PASS: tests/gem.scm
PASS: tests/gexp.scm
PASS: tests/git.scm
PASS: tests/git-authenticate.scm
PASS: tests/glob.scm
PASS: tests/gnu-maintenance.scm
PASS: tests/grafts.scm
PASS: tests/graph.scm
PASS: tests/gremlin.scm
SKIP: tests/hackage.scm
PASS: tests/import-utils.scm
PASS: tests/inferior.scm
PASS: tests/lint.scm
PASS: tests/modules.scm
PASS: tests/monads.scm
PASS: tests/nar.scm
PASS: tests/networking.scm
PASS: tests/opam.scm
PASS: tests/openpgp.scm
PASS: tests/packages.scm
PASS: tests/pack.scm
PASS: tests/pki.scm
PASS: tests/print.scm
PASS: tests/processes.scm
PASS: tests/profiles.scm
PASS: tests/publish.scm
PASS: tests/pypi.scm
PASS: tests/records.scm
PASS: tests/scripts.scm
PASS: tests/scripts-build.scm
PASS: tests/search-paths.scm
PASS: tests/services.scm
PASS: tests/services/linux.scm
PASS: tests/sets.scm
PASS: tests/size.scm
SKIP: tests/snix.scm
PASS: tests/status.scm
PASS: tests/store-database.scm
PASS: tests/store-deduplication.scm
PASS: tests/store-roots.scm
PASS: tests/store.scm
PASS: tests/substitute.scm
PASS: tests/swh.scm
FAIL: tests/syscalls.scm
PASS: tests/system.scm
PASS: tests/texlive.scm
PASS: tests/ui.scm
PASS: tests/union.scm
SKIP: tests/upstream.scm
PASS: tests/utils.scm
PASS: tests/uuid.scm
PASS: tests/workers.scm
PASS: tests/guix-build.sh
PASS: tests/guix-build-branch.sh
PASS: tests/guix-download.sh
PASS: tests/guix-git-authenticate.sh
PASS: tests/guix-hash.sh
PASS: tests/guix-pack.sh
PASS: tests/guix-pack-localstatedir.sh
PASS: tests/guix-pack-relocatable.sh
PASS: tests/guix-package.sh
PASS: tests/guix-package-aliases.sh
PASS: tests/guix-package-net.sh
PASS: tests/guix-system.sh
PASS: tests/guix-archive.sh
PASS: tests/guix-authenticate.sh
PASS: tests/guix-environment.sh
PASS: tests/guix-environment-container.sh
PASS: tests/guix-graph.sh
PASS: tests/guix-describe.sh
PASS: tests/guix-repl.sh
PASS: tests/guix-lint.sh
PASS: tests/guix-gc.sh
PASS: tests/guix-daemon.sh
============================================================================
Testsuite summary for GNU Guix 1.0.1.22777-435e5-dirty
============================================================================
# TOTAL: 1070
# PASS:  1063
# SKIP:  4
# XFAIL: 2
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to [email-masked]
============================================================================
make[4]: *** [Makefile:5239: test-suite.log] Error 1
make[4]: Leaving directory '/home/plattfot/projects/guix'
make[3]: *** [Makefile:5347: check-TESTS] Error 2
make[3]: Leaving directory '/home/plattfot/projects/guix'
make[2]: *** [Makefile:5596: check-am] Error 2
make[2]: Leaving directory '/home/plattfot/projects/guix'
make[1]: *** [Makefile:5124: check-recursive] Error 1
make[1]: Leaving directory '/home/plattfot/projects/guix'
make: *** [Makefile:5598: check] Error 2
```

The log for the failing test in `tests/syscalls.log`:

```
test-name: statfs
location: /home/plattfot/projects/guix/tests/syscalls.scm:109
source:
+ (test-assert
+   "statfs"
+   (let ((fs (statfs "/")))
+     (and (file-system? fs)
+          (> (file-system-block-size fs) 0)
+          (>= (file-system-blocks-available fs) 0)
+          (>= (file-system-blocks-free fs)
+              (file-system-blocks-available fs)))))
actual-value: #f
result: FAIL

```

I'm running guix on a foreign distribution: Arch Linux with linux kernel
5.8.13-arch1-1.
guix describe reports:
```
Generation 22   okt 03 2020 18:33:59    (current)
  guix 3dc064f
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 3dc064f66c72ba923aba8b1e592d949c6e6b3219
```

The root filesystem is btrfs.

Thanks

-- 
s/Fred[re]+i[ck]+/Fredrik/g