Public bug reported:
Seen on armhf only[1]. The test suite runs the tests on python 3.13 and
3.14, and it fails on 3.14 only. Sometimes more than one test fails, but
it's always about "can't start new thread":
284s ==================================== ERRORS
====================================
284s ______ ERROR at setup of TestFileVersion.test_file_version_upload_headers
______
284s
284s self = <test.unit.file_version.test_file_version.TestFileVersion object at
0xe6b18b58>
284s
284s @pytest.fixture(autouse=True)
284s def setUp(self):
284s self.account_info = InMemoryAccountInfo()
284s self.cache = DummyCache()
284s self.api = B2Api(
284s self.account_info, self.cache,
api_config=B2HttpApiConfig(_raw_api_class=RawSimulator)
284s )
284s self.raw_api = self.api.session.raw_api
284s (self.application_key_id, self.master_key) =
self.raw_api.create_account()
284s self.api.authorize_account(
284s application_key_id=self.application_key_id,
284s application_key=self.master_key,
284s realm='production',
284s )
284s self.bucket = self.api.create_bucket('testbucket', 'allPrivate',
is_file_lock_enabled=True)
284s > self.file_version = self.bucket.upload_bytes(
284s b'nothing', 'test_file', cache_control='private, max-age=3600'
284s )
284s
284s test/unit/file_version/test_file_version.py:56:
284s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _
284s /usr/lib/python3/dist-packages/logfury/_logfury/trace_call.py:86: in
wrapper
284s return function(*wrapee_args, **wrapee_kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/bucket.py:605: in upload_bytes
284s return self.upload(
284s /usr/lib/python3/dist-packages/logfury/_logfury/trace_call.py:86: in
wrapper
284s return function(*wrapee_args, **wrapee_kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/bucket.py:926: in upload
284s return self.create_file(
284s /usr/lib/python3/dist-packages/logfury/_logfury/trace_call.py:86: in
wrapper
284s return function(*wrapee_args, **wrapee_kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/bucket.py:1011: in create_file
284s return self._create_file(
284s b2sdk/_internal/bucket.py:1158: in _create_file
284s return emerger_method(
284s /usr/lib/python3/dist-packages/logfury/_logfury/trace_call.py:86: in
wrapper
284s return function(*wrapee_args, **wrapee_kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/transfer/emerge/emerger.py:174: in emerge
284s return self._emerge(
284s b2sdk/_internal/transfer/emerge/emerger.py:116: in _emerge
284s return self.emerge_executor.execute_emerge_plan(
284s b2sdk/_internal/transfer/emerge/executor.py:82: in execute_emerge_plan
284s return execution.execute_plan(emerge_plan)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/transfer/emerge/executor.py:124: in execute_plan
284s future = execution_step.execute()
284s ^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/transfer/emerge/executor.py:712: in execute
284s return execution.services.upload_manager.upload_file(
284s /usr/lib/python3/dist-packages/logfury/_logfury/trace_call.py:86: in
wrapper
284s return function(*wrapee_args, **wrapee_kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s b2sdk/_internal/transfer/outbound/upload_manager.py:63: in upload_file
284s f = self._thread_pool.submit(
284s b2sdk/_internal/utils/thread_pool.py:53: in submit
284s return self._thread_pool.submit(fn, *args, **kwargs)
284s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284s /usr/lib/python3.14/concurrent/futures/thread.py:215: in submit
284s self._adjust_thread_count()
284s /usr/lib/python3.14/concurrent/futures/thread.py:237: in
_adjust_thread_count
284s t.start()
284s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _
284s
284s self = <Thread(ThreadPoolExecutor-439_0, stopped)>
284s
284s def start(self):
284s """Start the thread's activity.
284s
284s It must be called at most once per thread object. It arranges for
the
284s object's run() method to be invoked in a separate thread of
control.
284s
284s This method will raise a RuntimeError if called more than once on
the
284s same thread object.
284s
284s """
284s if not self._initialized:
284s raise RuntimeError("thread.__init__() not called")
284s
284s if self._started.is_set():
284s raise RuntimeError("threads can only be started once")
284s
284s with _active_limbo_lock:
284s _limbo[self] = self
284s
284s if self._context is None:
284s # No context provided
284s if _sys.flags.thread_inherit_context:
284s # start with a copy of the context of the caller
284s self._context = _contextvars.copy_context()
284s else:
284s # start with an empty context
284s self._context = _contextvars.Context()
284s
284s try:
284s # Start joinable thread
284s > _start_joinable_thread(self._bootstrap,
handle=self._os_thread_handle,
284s daemon=self.daemon)
284s E RuntimeError: can't start new thread
284s
284s /usr/lib/python3.14/threading.py:1005: RuntimeError
284s =============================== warnings summary
===============================
284s test/unit/conftest.py:27
284s /tmp/autopkgtest.LUrf0J/build.Ey7/src/test/unit/conftest.py:27:
PytestAssertRewriteWarning: Module already imported so cannot be rewritten;
test.unit
284s pytest.register_assert_rewrite('test.unit')
284s
284s test/unit/api/test_api.py:445
284s /tmp/autopkgtest.LUrf0J/build.Ey7/src/test/unit/api/test_api.py:445:
SyntaxWarning: "\[" is an invalid escape sequence. Such sequences will not work
in the future. Did you mean "\\["? A raw string is also an option.
284s with pytest.raises(RestrictedBucket, match="\['bucket1', 'bucket2'\]"):
284s
284s test/unit/b2http/test_b2http.py::TestTranslateErrors::test_invalid_json
284s /tmp/autopkgtest.LUrf0J/build.Ey7/src/b2sdk/_internal/exception.py:726:
UserWarning: bad request exception with an unknown `code`.
message={{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,
code=non_json_response
284s warnings.warn(
284s
284s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
284s =========================== short test summary info
============================
284s ERROR
test/unit/file_version/test_file_version.py::TestFileVersion::test_file_version_upload_headers
284s ===== 726 passed, 60 skipped, 4 deselected, 3 warnings, 1 error in 12.32s
======
1.
https://autopkgtest.ubuntu.com/results/autopkgtest-resolute/resolute/armhf/p/python-b2sdk/20260218_121023_91cdf@/log.gz#:~:text=daemon)%0A284s%20E-,RuntimeError,-%3A%20can%27t%20start%20new
** Affects: python-b2sdk (Ubuntu)
Importance: Undecided
Status: New
** Tags: update-excuse
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2142124
Title:
armhf DEP8 failures: can't start new thread
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-b2sdk/+bug/2142124/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs