testing the new commit batch

0 views
Skip to first unread message

Greg Troxel

unread,
Nov 10, 2025, 9:09:25 PM (4 days ago) Nov 10
to bup-...@googlegroups.com
I'm testing on NetBSD 10 amd64, python3.13, TZ=UTC and running into problems.

I'm using bits from

https://github.com/rlbdv/bup/tree/tmp/proposed

because even though I lean to codeberg, I have the github flavor
configured already. The specific commit I tested is:

commit a0b62323b7987f8101f7d28a3e27ba2ac242f8dc (HEAD -> tmp/proposed, rlbdv/tmp/proposed)
Author: Rob Browning <r...@defaultvalue.org>
Date: Fri Oct 17 20:04:29 2025 -0500


I checked that main:

commit 2f5d6416fe6958764580df82332d123d01df5587 (HEAD -> main, upstream/main, upstream/HEAD, origin/main, origin/HEAD)
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun Aug 17 15:22:46 2025 -0500

passes tests

$ tail CHECK.0.33-502-g2f5d6416.python3.13.UTC
test/int/test_vfs.py::test_contents_with_mismatched_bupm_git_ordering PASSED [ 95%]
test/int/test_vfs.py::test_duplicate_save_dates PASSED [ 95%]
test/int/test_vfs.py::test_tree_depth_parsing PASSED [ 96%]
test/int/test_vint.py::test_vuint PASSED [ 97%]
test/int/test_vint.py::test_vint PASSED [ 97%]
test/int/test_vint.py::test_bvec PASSED [ 98%]
test/int/test_vint.py::test_pack_and_unpack PASSED [ 99%]
test/int/test_xstat.py::test_fstime PASSED [100%]

=========== 143 passed, 6 skipped, 1 deselected in 817.09s (0:13:37) ===========


Running tests on tmp/proposed, I have some test failures, and a few hangs, which I think
are about script, but I haven't figured it out yet. Killing processes
lets the tests finish surely with spurious errors.


$ tail -15 CHECK.0.33-519-ga0b62323.python3.13.UTC
Saving: 69.23% (0/0k, 6/6 files), done.

=========================== short test summary info ============================
FAILED test/ext/test_get.py::test_get[get-replace] - AssertionError
FAILED test/ext/test_get.py::test_get[get-universal] - AssertionError
FAILED test/ext/test_get.py::test_get[get-ff] - AssertionError
FAILED test/ext/test_get.py::test_get[get-append] - AssertionError
FAILED test/ext/test_get.py::test_get[get-pick_force] - AssertionError
FAILED test/ext/test_get.py::test_get[get-pick_noforce] - AssertionError
FAILED test/ext/test_get.py::test_get[get-new_tag] - AssertionError
FAILED test/ext/test_get.py::test_get[get-unnamed] - AssertionError
FAILED test/ext/test-fsck::
FAILED test/ext/test-misc::
===== 10 failed, 133 passed, 6 skipped, 1 deselected in 826.42s (0:13:46) ======
gmake: *** [GNUmakefile:329: check] Error 1



Trying to figure out what's wrong, seems like

1) expecting EREMOTEIO which NetBSD doesn't have:

File "/home/gdt/SOFTWARE/BUP/bup/lib/bup/cmd/fsck.py", line 2, in <module>
from errno import EMLINK, EOPNOTSUPP, EPERM, ERANGE, EREMOTEIO, EXDEV
ImportError: cannot import name 'EREMOTEIO' from 'errno' (unknown location). Did you mean: 'EREMOTE'?

2) bup get objects to an invocation

Initialized empty Git repository in /home/gdt/SOFTWARE/BUP/bup/test/tmp/ext-test_get-py-test_getedn48rne/get-dest/
run_get: ('get', b'--ff', b'not-there')
/home/gdt/SOFTWARE/BUP/bup/lib/cmd/bup -d get-dest get -vvct --print-tags -s get-src --ff not-there
usage: bup get [-s source] [-r remote] (<--ff|--append|...> REF
[DEST])...

Transfer data from a source repository to a destination repository

and I don't yet understand why. bup 0.33.8 is installed, but that
shouldn't hurt.


That might be all the issues; it's a little hard to be sure reading the
output.

Rob Browning

unread,
Nov 11, 2025, 12:55:33 PM (3 days ago) Nov 11
to Greg Troxel, bup-...@googlegroups.com
Greg Troxel <g...@lexort.com> writes:

> Running tests on tmp/proposed, I have some test failures, and a few hangs, which I think
> are about script, but I haven't figured it out yet.

Right, happy to fix that once we know what we need.

> Trying to figure out what's wrong, seems like
>
> 1) expecting EREMOTEIO which NetBSD doesn't have:
>
> File "/home/gdt/SOFTWARE/BUP/bup/lib/bup/cmd/fsck.py", line 2, in <module>
> from errno import EMLINK, EOPNOTSUPP, EPERM, ERANGE, EREMOTEIO, EXDEV
> ImportError: cannot import name 'EREMOTEIO' from 'errno' (unknown location). Did you mean: 'EREMOTE'?

OK, that should be easy to fix. Perhaps something like this:

diff --git a/lib/bup/cmd/fsck.py b/lib/bup/cmd/fsck.py
index 14673119..348cde28 100644
--- a/lib/bup/cmd/fsck.py
+++ b/lib/bup/cmd/fsck.py
@@ -1,12 +1,11 @@

-from errno import EMLINK, EOPNOTSUPP, EPERM, ERANGE, EREMOTEIO, EXDEV
from os import SEEK_END
from shutil import rmtree
from subprocess import DEVNULL, PIPE, run
from tempfile import mkdtemp
from os.path import join
from shutil import copy2
-import glob, os, sys
+import errno, glob, os, sys

from bup import options, git
from bup.compat import argv_bytes
@@ -76,6 +75,16 @@ def par2(action, args, verb_floor=0, cwd=None):
cmd.extend(args)
return run(cmd, stdout=2, cwd=cwd).returncode

+_unable_to_link = set()
+_unable_to_link.add(getattr(errno, 'EMLINK', None))
+_unable_to_link.add(getattr(errno, 'EOPNOTSUPP', None)) # freebsd
+_unable_to_link.add(getattr(errno, 'EPERM', None)) # linux
+_unable_to_link.add(getattr(errno, 'ERANGE', None)) # cryfs
+_unable_to_link.add(getattr(errno, 'EREMOTEIO', None)) # kafs (cross-directory)
+_unable_to_link.add(getattr(errno, 'EXDEV', None)) # openafs (cross-directory)
+_unable_to_link.discard(None)
+_unable_to_link = frozenset(_unable_to_link)
+
def par2_generate(stem):
parent, base = os.path.split(stem)
# Work in a temp_dir because par2 was observed creating empty
@@ -89,12 +98,7 @@ def par2_generate(stem):
try:
os.link(pack_src, pack_dst)
except OSError as ex:
- if ex.errno not in (EMLINK,
- EOPNOTSUPP, # freebsd
- EPERM, # linux
- ERANGE, # cryfs
- EREMOTEIO, # kafs (cross-directory)
- EXDEV): # openafs (cross-directory)
+ if not ex.errno in _unable_to_link:
raise
copy_instead = True
if copy_instead:

> 2) bup get objects to an invocation
>
> Initialized empty Git repository in /home/gdt/SOFTWARE/BUP/bup/test/tmp/ext-test_get-py-test_getedn48rne/get-dest/
> run_get: ('get', b'--ff', b'not-there')
> /home/gdt/SOFTWARE/BUP/bup/lib/cmd/bup -d get-dest get -vvct --print-tags -s get-src --ff not-there
> usage: bup get [-s source] [-r remote] (<--ff|--append|...> REF
> [DEST])...
>
> Transfer data from a source repository to a destination repository
>
> and I don't yet understand why. bup 0.33.8 is installed, but that
> shouldn't hurt.

I suspect you can ignore this -- i.e. we do a *lot* of negative testing
in test_get, i.e. expected failures, and I suspect that's one of them.

Thanks
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4
Reply all
Reply to author
Forward
0 new messages