From: sanvila@debian.org   
      
   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 .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, wor   
   er_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 =    
   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 .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, worke   
   _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 =    
   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    
   DummyProcessing'>   
   E when serializing tuple item 2   
   E when serializing dict item '_args'   
   E when serializing multiprocessing.context.Process state   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|