On Sat, 23 May 2026 at 13:46:03 +0000, Santiago Vila reported:
assert xattr.getxattr(b'input/file', b'security.capability') ==
capabilities
E AssertionError: assert b'' == b'\x01\x00\x0...0\x00\x00\x00'
(this happened twice in Santiago's log, once in
ArchiverTestCase::test_extract_capabilities and once in
RemoteArchiverTestCase::test_extract_capabilities)
This test failure is now a blocker for the Python 3.14 transition,
because borgbackup is one of the packages needing rebuilding for that
transition. Builds on the official Debian buildds exhibited the same
test failure, for example in
<https://buildd.debian.org/status/fetch.php?pkg=borgbackup&arch=arm64&ver=1.4.4-3%2Bb1&stamp=1782584582&raw=0>
and
<https://buildd.debian.org/status/fetch.php?pkg=borgbackup&arch=s390x&ver=1.4.4-3%2Bb1&stamp=1782588098&raw=0>.
I can reproduce these two test failures on a real machine running
unstable (building on either a btrfs or tmpfs filesystem), and on a
qemu virtual machine running Debian 13 (on ext4, I think).
If I avoid running tests under fakeroot (patch below) then that avoids
this particular test failure.
I can also reproduce most (all? I haven't checked yet) of the other test
failures seen in the buildd logs above, but it seems likely that their
root cause is different, so I'll report them separately if not already
in-scope for #1140857. Avoiding fakeroot *doesn't* address those.
smcv
----
diff --git a/debian/rules b/debian/rules
index bb6c6ff5d..94c6f0454 100755
--- a/debian/rules
+++ b/debian/rules
@@ -39,17 +39,12 @@ override_dh_installman:
$(MAKE) -C docs man SPHINXBUILD=$(SPHINXBUILD)
dh_installman
-# We run most of the tests in fakeroot to increase test coverage, but fakeroot
-# introduces race conditions on its own.
-TESTS_NO_FAKEROOT = benchmark.py cache.py checks.py key.py locking.py
patterns.py remote.py repository.py shellpattern.py
override_dh_auto_test: export TZ=UTC # tests break in TZ=GMT+12, see
https://github.com/borgbackup/borg/issues/5535
override_dh_auto_test: export LC_ALL=C.UTF-8
override_dh_auto_test:
- # fakeroot introduces race conditions to e.g. locking tests.
- dh_auto_test -- --test-args "--pyargs borg.testsuite -k '$(subst $(eval)
$(eval), or ,$(TESTS_NO_FAKEROOT))'"
# We cannot rely on the buildds allowing fuse to be
# used, so we disable the fuse-mount tests.
- fakeroot dh_auto_test -- --test-args "--pyargs borg.testsuite -k 'not
fuse_mount and not test_fuse and not test_readonly_mount and not test_migrate_lock_alive
$(foreach t,$(TESTS_NO_FAKEROOT),and not $(t))'"
+ dh_auto_test -- --test-args "--pyargs borg.testsuite -k 'not fuse_mount and
not test_fuse and not test_readonly_mount and not test_migrate_lock_alive'"
# Do not compress .ico file (affects html documentation)
override_dh_compress: