Bug 16061

Summary: python3.14: cannot pickle '_thread.lock' object
Product: [QA/Testing] Functional (self) Testing Reporter: Mathieu Dubois-Briand <mathieu.dubois-briand>
Component: oe-selftestAssignee: Joshua Watt <JPEWhacker>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: randy.macleod, richard.purdie
Version: unspecified   
Target Milestone: 6.0 M1   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Mathieu Dubois-Briand 2025-11-13 12:17:17 UTC
Happens on the Fedora 43 worker, likely because of a new python version

Failure (ERROR) for apt.AptRepoTest.test_apt_install_from_repo:
Traceback (most recent call last):
  File "/srv/pokybuild/yocto-worker/no-x11/build/layers/openembedded-core/meta/lib/oeqa/core/case.py", line 40, in _oeSetUpClass
    clss.setUpClassMethod()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/srv/pokybuild/yocto-worker/no-x11/build/layers/openembedded-core/meta/lib/oeqa/runtime/cases/apt.py", line 30, in setUpClass
    cls.repo_server.start()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/srv/pokybuild/yocto-worker/no-x11/build/layers/openembedded-core/meta/lib/oeqa/utils/httpserver.py", line 58, in start
    self.process.start()
    ~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
                  ~~~~~~~~~~~^^^^^^
  File "/usr/lib64/python3.14/multiprocessing/context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/multiprocessing/context.py", line 300, in _Popen
    return Popen(process_obj)
  File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__
    super().__init__(process_obj)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/multiprocessing/popen_fork.py", line 20, in __init__
    self._launch(process_obj)
    ~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 47, in _launch
    reduction.dump(process_obj, buf)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/multiprocessing/reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle '_thread.lock' object
when serializing dict item '_lock'
when serializing threading.Condition state
when serializing threading.Condition object
when serializing dict item '_cond'
when serializing threading.Event state
when serializing threading.Event object
when serializing dict item '_BaseServer__is_shut_down'
when serializing oeqa.utils.httpserver.HTTPServer state
when serializing oeqa.utils.httpserver.HTTPServer object
when serializing tuple item 0
when serializing method reconstructor arguments
when serializing method object
when serializing dict item '_target'
when serializing multiprocessing.context.Process state
when serializing multiprocessing.context.Process object
Comment 1 Mathieu Dubois-Briand 2025-11-13 12:31:35 UTC
no-x11 fedora43-vk-1 master-next completed at 2025-11-13 00:20:48+00:00
https://autobuilder.yoctoproject.org/valkyrie/#/builders/25/builds/2710/steps/13/logs/stdio

qemuriscv64 fedora43-vk-1 master-next completed at 2025-11-13 00:53:34+00:00
https://autobuilder.yoctoproject.org/valkyrie/#/builders/45/builds/706/steps/15/logs/stdio

multilib fedora43-vk-2 master completed at 2025-11-13 01:22:44+00:00
https://autobuilder.yoctoproject.org/valkyrie/#/builders/92/builds/2706/steps/19/logs/stdio

musl-qemux86-64 fedora43-vk-1 master completed at 2025-11-13 01:17:51+00:00
https://autobuilder.yoctoproject.org/valkyrie/#/builders/3/builds/2771/steps/13/logs/stdio