Discussion:
Bug#1099219: check-manifest: FTBFS: E subprocess.CalledProcessError: Command 'bzr' died with <Signals.SIGABRT: 6>.
Add Reply
Santiago Vila
2025-03-01 21:10:14 UTC
Reply
Permalink
Package: src:check-manifest
Version: 0.49-3
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py clean
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_check-manifest/build' (and everything under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-3.13' does not exist -- can't clean it
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py config
running config
dh_auto_build -O--buildsystem=pybuild
I: pybuild base:311: /usr/bin/python3 setup.py build
running build
running build_py
copying check_manifest.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_check-manifest/build
dh_auto_test -O--buildsystem=pybuild
I: pybuild pybuild:308: cp /<<PKGBUILDDIR>>/tests.py /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_check-manifest/build
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_check-manifest/build; python3.13 -m pytest -k "not test_build_sdist"
============================= test session starts ==============================
platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
configfile: setup.cfg
plugins: typeguard-4.4.2
collected 149 items / 2 deselected / 147 selected

check_manifest.py . [ 0%]
tests.py ............................................................... [ 43%]
..............F.s.F.....s............................................... [ 92%]
........... [100%]

=================================== FAILURES ===================================
__________________________ TestBzr.test_get_vcs_files __________________________

self = <tests.TestBzr testMethod=test_get_vcs_files>

def test_get_vcs_files(self):
from check_manifest import get_vcs_files
self._init_vcs()
self._create_and_add_to_vcs(['a.txt', 'b/b.txt', 'b/c/d.txt'])
self._commit()
tests.py:1019:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests.py:1009: in _commit
self.vcs._commit()
tests.py:1166: in _commit
self._run('bzr', 'commit', '-m', 'Initial')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.BzrHelper object at 0x7f12ba3d1010>
command = ('bzr', 'commit', '-m', 'Initial')
p = <Popen: returncode: -6 args: ('bzr', 'commit', '-m', 'Initial')>
stdout = b"Committing to: /tmp/test-1trtgybc-check-manifest/\nbzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.\n"

def _run(self, *command):
# Windows doesn't like Unicode arguments to subprocess.Popen(), on Py2:
# https://github.com/mgedmin/check-manifest/issues/23#issuecomment-33933031
if str is bytes:
command = [s.encode(locale.getpreferredencoding()) for s in command]
print('$', ' '.join(command))
p = subprocess.Popen(command, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
env={**os.environ, **self.extra_env})
stdout, stderr = p.communicate()
rc = p.wait()
if stdout:
print(stdout.decode('ascii', 'backslashreplace'))
raise subprocess.CalledProcessError(rc, command[0], output=stdout)
E subprocess.CalledProcessError: Command 'bzr' died with <Signals.SIGABRT: 6>.

tests.py:974: CalledProcessError
----------------------------- Captured stdout call -----------------------------
$ bzr init
Created a standalone tree (format: 2a)

$ bzr whoami --branch Unit Test <***@example.com>
$ bzr add -- a.txt b/b.txt b/c/d.txt
adding a.txt
adding b
adding b/b.txt
adding b/c
adding b/c/d.txt

$ bzr commit -m Initial
Committing to: /tmp/test-1trtgybc-check-manifest/
bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.

____________________ TestBzr.test_get_vcs_files_in_a_subdir ____________________

self = <tests.TestBzr testMethod=test_get_vcs_files_in_a_subdir>

def test_get_vcs_files_in_a_subdir(self):
from check_manifest import get_vcs_files
self._init_vcs()
self._create_and_add_to_vcs(['a.txt', 'b/b.txt', 'b/c/d.txt'])
self._commit()
tests.py:1047:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests.py:1009: in _commit
self.vcs._commit()
tests.py:1166: in _commit
self._run('bzr', 'commit', '-m', 'Initial')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.BzrHelper object at 0x7f12ba3d1010>
command = ('bzr', 'commit', '-m', 'Initial')
p = <Popen: returncode: -6 args: ('bzr', 'commit', '-m', 'Initial')>
stdout = b"Committing to: /tmp/test-o1b_pp3j-check-manifest/\nbzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.\n"

def _run(self, *command):
# Windows doesn't like Unicode arguments to subprocess.Popen(), on Py2:
# https://github.com/mgedmin/check-manifest/issues/23#issuecomment-33933031
if str is bytes:
command = [s.encode(locale.getpreferredencoding()) for s in command]
print('$', ' '.join(command))
p = subprocess.Popen(command, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
env={**os.environ, **self.extra_env})
stdout, stderr = p.communicate()
rc = p.wait()
if stdout:
print(stdout.decode('ascii', 'backslashreplace'))
raise subprocess.CalledProcessError(rc, command[0], output=stdout)
E subprocess.CalledProcessError: Command 'bzr' died with <Signals.SIGABRT: 6>.

tests.py:974: CalledProcessError
----------------------------- Captured stdout call -----------------------------
$ bzr init
Created a standalone tree (format: 2a)

$ bzr whoami --branch Unit Test <***@example.com>
$ bzr add -- a.txt b/b.txt b/c/d.txt
adding a.txt
adding b
adding b/b.txt
adding b/c
adding b/c/d.txt

$ bzr commit -m Initial
Committing to: /tmp/test-o1b_pp3j-check-manifest/
bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.

=========================== short test summary info ============================
FAILED tests.py::TestBzr::test_get_vcs_files - subprocess.CalledProcessError:...
FAILED tests.py::TestBzr::test_get_vcs_files_in_a_subdir - subprocess.CalledP...
=========== 2 failed, 143 passed, 2 skipped, 2 deselected in 11.67s ============
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_check-manifest/build; python3.13 -m pytest -k "not test_build_sdist"
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202503/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:check-manifest, so that this is still
visible in the BTS web page for this package.

Thanks.
Sergio Durigan Junior
2025-03-01 21:50:01 UTC
Reply
Permalink
Control: retitle -1 bzr crashes with SIGABRT when trying to commit files
Control: reassign -1 src:bzr/2.7.0+bzr6622+brz
Control: affects -1 + src:check-manifest
Control: severity -1 critical
[...]
Post by Santiago Vila
raise subprocess.CalledProcessError(rc, command[0], output=stdout)
E subprocess.CalledProcessError: Command 'bzr' died with <Signals.SIGABRT: 6>.
Thanks for the bug.

This is a problem with bzr, which is used by check-manifest when doing
tests.

It's easily reproducible:

--8<---------------cut here---------------start------------->8---
# bzr init
Created a standalone tree (format: 2a)
# bzr whoami --branch "Test <***@example.com>"
# mkdir -p b/c
# touch a.txt b/b.txt b/c/d.txt
# bzr add -- a.txt b/b.txt b/c/d.txt
adding a.txt
adding b
adding b/b.txt
adding b/c
adding b/c/d.txt
# bzr commit -m Initial
Committing to: /tmp/
bzr: breezy/bzr/_dirstate_helpers_pyx.c:11215: __pyx_f_6breezy_3bzr_21_dirstate_helpers_pyx_update_entry: Assertion `PyTuple_Check(__pyx_v_details)' failed.
Aborted (core dumped)
--8<---------------cut here---------------end--------------->8---

Reassigning to the proper package.
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
https://sergiodj.net/
Loading...