Package: src:nabu
Version: 2025.2.0-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

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 cannot 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:nabu, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]

file = <_io.BytesIO object at 0x7f94e3fd26b0>, protocol = None

    def dump(obj, file, protocol=None):
        '''Replacement for pickle.dump() using ForkingPickler.'''
>       ForkingPickler(file, protocol).dump(obj)
E       _pickle.PicklingError: Can't pickle local object <class 
'nabu.pipeline.tests.test_tasks.test_task_processor_simple.<locals>.DummyTask'>
E       when serializing tuple item 2
E       when serializing dict item '_args'
E       when serializing multiprocessing.context.Process state
E       when serializing multiprocessing.context.Process object

/usr/lib/python3.14/multiprocessing/reduction.py:60: PicklingError
_________________________ test_task_processor_callback _________________________

    def test_task_processor_callback():
        class MyProcessingClass:
            def __init__(self, a):
                self.a = a
                self.previous_task = None
    
            def process_task(self, task):
                print(f"[{os.getpid()}] Got task: {task} (previous was: 
{self.previous_task})")
                sleep(0.5)
                result = f"{os.getpid()} did {task}"
                self.previous_task = task
                return result
    
        tp = TaskProcessor(MyProcessingClass, n_processes=2, 
worker_init_args={"a": 1})
>       tp.start_workers()

nabu/pipeline/tests/test_tasks.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
nabu/pipeline/tasks.py:120: in start_workers
    p.start()
/usr/lib/python3.14/multiprocessing/process.py:121: in start
    self._popen = self._Popen(self)
                  ^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/context.py:224: in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/context.py:300: in _Popen
    return Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__
    super().__init__(process_obj)
/usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__
    self._launch(process_obj)
/usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch
    reduction.dump(process_obj, buf)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

obj = <Process name='Process-6' parent=91 initial>
file = <_io.BytesIO object at 0x7f94e36e05e0>, protocol = None

    def dump(obj, file, protocol=None):
        '''Replacement for pickle.dump() using ForkingPickler.'''
>       ForkingPickler(file, protocol).dump(obj)
E       _pickle.PicklingError: Can't pickle local object <class 
'nabu.pipeline.tests.test_tasks.test_task_processor_callback.<locals>.MyProcessingClass'>
E       when serializing tuple item 2
E       when serializing dict item '_args'
E       when serializing multiprocessing.context.Process state
E       when serializing multiprocessing.context.Process object

/usr/lib/python3.14/multiprocessing/reduction.py:60: PicklingError
___________________________ test_with_worker_failure ___________________________

    def test_with_worker_failure():
        class DummyProcessing:
            def __init__(self, sleep_time):
                self.s = sleep_time
    
            def process_task(self, task):
                sleep(self.s)
                if task.get("fail", False):
                    raise ValueError("kaboom")
                i = task.get("task_id", 1)
                return {"result": i + 10}
    
        tp = TaskProcessor(DummyProcessing, n_processes=2, 
worker_init_args=(0.1,))
>       tp.start_workers()

nabu/pipeline/tests/test_tasks.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
nabu/pipeline/tasks.py:120: in start_workers
    p.start()
/usr/lib/python3.14/multiprocessing/process.py:121: in start
    self._popen = self._Popen(self)
                  ^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/context.py:224: in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/context.py:300: in _Popen
    return Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^
/usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__
    super().__init__(process_obj)
/usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__
    self._launch(process_obj)
/usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch
    reduction.dump(process_obj, buf)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

obj = <Process name='Process-7' parent=91 initial>
file = <_io.BytesIO object at 0x7f94e3fb7470>, protocol = None

    def dump(obj, file, protocol=None):
        '''Replacement for pickle.dump() using ForkingPickler.'''
>       ForkingPickler(file, protocol).dump(obj)
E       _pickle.PicklingError: Can't pickle local object <class 
'nabu.pipeline.tests.test_tasks.test_with_worker_failure.<locals>.DummyProcessing'>
E       when serializing tuple item 2
E       when serializing dict item '_args'
E       when serializing multiprocessing.context.Process state
E       when serializing multiprocessing.context.Process object

/usr/lib/python3.14/multiprocessing/reduction.py:60: PicklingError
__________________________ TestUnits.test_valid_input __________________________

self = <nabu.resources.tests.test_units.TestUnits object at 0x7f9501ad3110>

    def test_valid_input(self):
        for test_str, expected_failure in self.expected_failures.items():
            with pytest.raises(type(expected_failure)) as e_info:
                get_quantities_and_units(test_str)
>           assert e_info.value.args[0] == str(expected_failure)
E           AssertionError: assert 'too many val...ted 2, got 3)' == 'too many 
val... (expected 2)'
E             
E             - too many values to unpack (expected 2)
E             + too many values to unpack (expected 2, got 3)
E             ?                                      +++++++

nabu/resources/tests/test_units.py:47: AssertionError
=============================== warnings summary ===============================
../../../../../../usr/lib/python3/dist-packages/pytools/persistent_dict.py:52
  /usr/lib/python3/dist-packages/pytools/persistent_dict.py:52: 
RecommendedHashNotFoundWarning: Unable to import recommended hash 
'siphash24.siphash13', falling back to 'hashlib.sha256'. Run 'python3 -m pip 
install siphash24' to install the recommended hash.
    warn("Unable to import recommended hash 'siphash24.siphash13', "

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED nabu/pipeline/tests/test_tasks.py::test_task_processor_simple - _pickl...
FAILED nabu/pipeline/tests/test_tasks.py::test_task_processor_callback - _pic...
FAILED nabu/pipeline/tests/test_tasks.py::test_with_worker_failure - _pickle....
FAILED nabu/resources/tests/test_units.py::TestUnits::test_valid_input - Asse...
=========== 4 failed, 3596 passed, 380 skipped, 1 warning in 12.53s ============
E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_nabu/build; python3.14 -m pytest 
I: pybuild base:384: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_nabu/build; 
python3.13 -m pytest 
============================= test session starts ==============================
platform linux -- Python 3.13.12, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_nabu/build
configfile: pyproject.toml
plugins: typeguard-4.4.4
collected 3979 items / 1 skipped

nabu/app/tests/test_reduce_dark_flat.py .........                        [  0%]
nabu/estimation/tests/test_alignment.py ...                              [  0%]
nabu/estimation/tests/test_cor.py ssssssssssssssssssssssssssssssss       [  1%]
nabu/estimation/tests/test_focus.py sss                                  [  1%]
nabu/estimation/tests/test_motion_estimation.py sssss                    [  1%]
nabu/estimation/tests/test_tilt.py ss                                    [  1%]
nabu/estimation/tests/test_translation.py ss                             [  1%]
nabu/io/tests/test_cast_volume.py ..........                             [  1%]
nabu/io/tests/test_readers.py sssssssss..ss..ss                          [  2%]
nabu/io/tests/test_remove_volume.py ....                                 [  2%]
nabu/io/tests/test_writers.py ssss                                       [  2%]
nabu/misc/tests/test_binning.py .                                        [  2%]
nabu/pipeline/tests/test_estimators.py sssssss                           [  2%]
nabu/pipeline/tests/test_tasks.py ...                                    [  2%]
nabu/preproc/tests/test_ccd_corr.py ss                                   [  2%]
nabu/preproc/tests/test_ctf.py ssss                                      [  2%]
nabu/preproc/tests/test_double_flatfield.py .s                           [  2%]
nabu/preproc/tests/test_flatfield.py ...s..s.s.s.s                       [  3%]
nabu/preproc/tests/test_paganin.py ssss                                  [  3%]
nabu/preproc/tests/test_pcaflats.py ssssss                               [  3%]
nabu/preproc/tests/test_vshift.py .s                                     [  3%]
nabu/processing/tests/test_fft.py ssssssssssssssssssssssssssssssssssssss [  4%]
sssssssssss                                                              [  4%]
nabu/processing/tests/test_fftshift.py ssssssssssss                      [  4%]
nabu/processing/tests/test_histogram.py ss                               [  4%]
nabu/processing/tests/test_medfilt.py ssssssssssssssssssssssssssssssss   [  5%]
nabu/processing/tests/test_muladd.py ss                                  [  5%]
nabu/processing/tests/test_padding.py ss                                 [  5%]
nabu/processing/tests/test_roll.py sssssssss                             [  6%]
nabu/processing/tests/test_rotation.py ...............sssssssssssssss    [  6%]
nabu/processing/tests/test_transpose.py ssssssssssss                     [  7%]
nabu/processing/tests/test_unsharp.py ssss                               [  7%]
nabu/reconstruction/tests/test_cone.py ssssssssssss                      [  7%]
nabu/reconstruction/tests/test_deringer.py ssssss                        [  7%]
nabu/reconstruction/tests/test_fbp.py ssssssssssssssssssssss             [  8%]
nabu/reconstruction/tests/test_filtering.py ssssssssssssssssssssssssssss [  8%]
ssssssssssssssssssss                                                     [  9%]
nabu/reconstruction/tests/test_halftomo.py ssssssssss                    [  9%]
nabu/reconstruction/tests/test_mlem.py ssssssss                          [  9%]
nabu/reconstruction/tests/test_projector.py ssss                         [ 10%]
nabu/reconstruction/tests/test_reconstructor.py ssssssssssssssssssssssss [ 10%]
                                                                         [ 10%]
nabu/reconstruction/tests/test_sino_normalization.py ssss                [ 10%]
nabu/resources/tests/test_dataset_analyzer.py s                          [ 10%]
nabu/resources/tests/test_extract.py .                                   [ 10%]
nabu/resources/tests/test_nxflatfield.py sss                             [ 10%]
nabu/resources/tests/test_units.py ..                                    [ 10%]
nabu/stitching/tests/test_alignment.py s.                                [ 10%]
nabu/stitching/tests/test_config.py .................................... [ 11%]
........................................................................ [ 13%]
........................................................................ [ 15%]
........................................................................ [ 17%]
........................................................................ [ 19%]
........................................................................ [ 20%]
........................................................................ [ 22%]
........................................................................ [ 24%]
........................................................................ [ 26%]
........................................................................ [ 28%]
........................................................................ [ 29%]
........................................................................ [ 31%]
........................................................................ [ 33%]
........................................................................ [ 35%]
........................................................................ [ 37%]
........................................................................ [ 39%]
........................................................................ [ 40%]
........................................................................ [ 42%]
........................................................................ [ 44%]
........................................................................ [ 46%]
........................................................................ [ 48%]
........................................................................ [ 49%]
........................................................................ [ 51%]
........................................................................ [ 53%]
........................................................................ [ 55%]
........................................................................ [ 57%]
........................................................................ [ 58%]
........................................................................ [ 60%]
........................................................................ [ 62%]
........................................................................ [ 64%]
........................................................................ [ 66%]
........................................................................ [ 67%]
........................................................................ [ 69%]
........................................................................ [ 71%]
........................................................................ [ 73%]
........................................................................ [ 75%]
........................................................................ [ 77%]
........................................................................ [ 78%]
........................................................................ [ 80%]
........................................................................ [ 82%]
........................................................................ [ 84%]
........................................................................ [ 86%]
........................................................................ [ 87%]
........................................................................ [ 89%]
........................................................................ [ 91%]
........................................................................ [ 93%]
........................................................................ [ 95%]
........................................................................ [ 96%]
......................................................                   [ 98%]
nabu/stitching/tests/test_frame_composition.py ..                        [ 98%]
nabu/stitching/tests/test_overlap.py ........sss......                   [ 98%]
nabu/stitching/tests/test_sample_normalization.py .                      [ 98%]
nabu/stitching/tests/test_slurm_utils.py ..s                             [ 98%]
nabu/stitching/tests/test_utils.py ss                                    [ 98%]
nabu/stitching/tests/test_y_preprocessing_stitching.py ........          [ 99%]
nabu/stitching/tests/test_z_postprocessing_stitching.py ................ [ 99%]
.....                                                                    [ 99%]
nabu/stitching/tests/test_z_preprocessing_stitching.py .........         [ 99%]
nabu/stitching/utils/tests/test_post-processing.py ......                [100%]

=============================== warnings summary ===============================
../../../../../../usr/lib/python3/dist-packages/pytools/persistent_dict.py:52
  /usr/lib/python3/dist-packages/pytools/persistent_dict.py:52: 
RecommendedHashNotFoundWarning: Unable to import recommended hash 
'siphash24.siphash13', falling back to 'hashlib.sha256'. Run 'python3 -m pip 
install siphash24' to install the recommended hash.
    warn("Unable to import recommended hash 'siphash24.siphash13', "

nabu/pipeline/tests/test_tasks.py::test_task_processor_simple
nabu/pipeline/tests/test_tasks.py::test_task_processor_callback
nabu/pipeline/tests/test_tasks.py::test_task_processor_callback
nabu/pipeline/tests/test_tasks.py::test_with_worker_failure
nabu/pipeline/tests/test_tasks.py::test_with_worker_failure
  /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: 
This process (pid=190) is multi-threaded, use of fork() may lead to deadlocks 
in the child.
    self.pid = os.fork()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================ 3600 passed, 380 skipped, 6 warnings in 14.94s ================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

Reply via email to