Skip to content

DAG-processor RuntimeError: can't start new thread #49650

@zachliu

Description

@zachliu

Apache Airflow version

3.0.0

If "Other Airflow 2 version" selected, which one?

No response

What happened?

The dag-processor raises RuntimeError: can't start new thread after it has been running for over 6~7 hours. I suspect there might be a memory-or-something-else-leak.

processor-1  | [2025-04-23T12:31:47.475+0000] {dag_processor_job_runner.py:63} ERROR - Exception when executing DagProcessorJob
processor-1  |   + Exception Group Traceback (most recent call last):
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
processor-1  |   |     yield
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 177, in __call__
processor-1  |   |     async with anyio.create_task_group() as task_group:
processor-1  |   |                ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 772, in __aexit__
processor-1  |   |     raise BaseExceptionGroup(
processor-1  |   | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
processor-1  |   +-+---------------- 1 ----------------
processor-1  |     | Traceback (most recent call last):
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
processor-1  |     |     await self.app(scope, receive, _send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
processor-1  |     |     with recv_stream, send_stream, collapse_excgroups():
processor-1  |     |                                    ^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
processor-1  |     |     self.gen.throw(value)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
processor-1  |     |     response = await self.dispatch_func(request, call_next)
processor-1  |     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/middleware.py", line 124, in dispatch
processor-1  |     |     response = await call_next(request)
processor-1  |     |                ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
processor-1  |     |     raise app_exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
processor-1  |     |     await self.app(scope, receive_or_disconnect, send_no_error)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
processor-1  |     |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     |     await app(scope, receive, sender)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 93, in __call__
processor-1  |     |     await self.process_request(scope=scope, receive=receive, send=send, routes=routes)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 131, in process_request
processor-1  |     |     await route.handle(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
processor-1  |     |     await self.app(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
processor-1  |     |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     |     await app(scope, receive, sender)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
processor-1  |     |     response = await f(request)
processor-1  |     |                ^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/routing.py", line 291, in app
processor-1  |     |     solved_result = await solve_dependencies(
processor-1  |     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 640, in solve_dependencies
processor-1  |     |     solved = await run_in_threadpool(call, **solved_result.values)
processor-1  |     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     |     return await anyio.to_thread.run_sync(func)
processor-1  |     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     |     worker.start()
processor-1  |     |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     |     _start_new_thread(self._bootstrap, ())
processor-1  |     | RuntimeError: can't start new thread
processor-1  |     +------------------------------------
processor-1  |
processor-1  | During handling of the above exception, another exception occurred:
processor-1  |
processor-1  | Traceback (most recent call last):
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
processor-1  |     await self.app(scope, receive, _send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
processor-1  |     with recv_stream, send_stream, collapse_excgroups():
processor-1  |                                    ^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
processor-1  |     self.gen.throw(value)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
processor-1  |     response = await self.dispatch_func(request, call_next)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/middleware.py", line 124, in dispatch
processor-1  |     response = await call_next(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
processor-1  |     raise app_exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
processor-1  |     await self.app(scope, receive_or_disconnect, send_no_error)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
processor-1  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     await app(scope, receive, sender)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 93, in __call__
processor-1  |     await self.process_request(scope=scope, receive=receive, send=send, routes=routes)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 131, in process_request
processor-1  |     await route.handle(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
processor-1  |     await self.app(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
processor-1  |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     await app(scope, receive, sender)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
processor-1  |     response = await f(request)
processor-1  |                ^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/routing.py", line 291, in app
processor-1  |     solved_result = await solve_dependencies(
processor-1  |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 640, in solve_dependencies
processor-1  |     solved = await run_in_threadpool(call, **solved_result.values)
processor-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     return await anyio.to_thread.run_sync(func)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     worker.start()
processor-1  |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     _start_new_thread(self._bootstrap, ())
processor-1  | RuntimeError: can't start new thread
processor-1  |
processor-1  | During handling of the above exception, another exception occurred:
processor-1  |
processor-1  | Traceback (most recent call last):
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/jobs/dag_processor_job_runner.py", line 61, in _execute
processor-1  |     self.processor.run()
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 262, in run
processor-1  |     return self._run_parsing_loop()
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 349, in _run_parsing_loop
processor-1  |     self._service_processor_sockets(timeout=poll_time)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 391, in _service_processor_sockets
processor-1  |     need_more = socket_handler(key.fileobj)
processor-1  |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/execution_time/supervisor.py", line 1169, in cb
processor-1  |     gen.send(line)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/execution_time/supervisor.py", line 554, in handle_requests
processor-1  |     self._handle_request(msg, log)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/processor.py", line 289, in _handle_request
processor-1  |     var = self.client.variables.get(msg.key)
processor-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/api/client.py", line 293, in get
processor-1  |     resp = self.client.get(f"variables/{key}")
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 1054, in get
processor-1  |     return self.request(
processor-1  |            ^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f
processor-1  |     return copy(f, *args, **kw)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
processor-1  |     do = self.iter(retry_state=retry_state)
processor-1  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
processor-1  |     result = action(retry_state)
processor-1  |              ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 400, in <lambda>
processor-1  |     self._add_action_func(lambda rs: rs.outcome.result())
processor-1  |                                      ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
processor-1  |     return self.__get_result()
processor-1  |            ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
processor-1  |     raise self._exception
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
processor-1  |     result = fn(*args, **kwargs)
processor-1  |              ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/api/client.py", line 629, in request
processor-1  |     return super().request(*args, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 827, in request
processor-1  |     return self.send(request, auth=auth, follow_redirects=follow_redirects)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 914, in send
processor-1  |     response = self._send_handling_auth(
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 942, in _send_handling_auth
processor-1  |     response = self._send_handling_redirects(
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
processor-1  |     response = self._send_single_request(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 1015, in _send_single_request
processor-1  |     response = transport.handle_request(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_transports/wsgi.py", line 138, in handle_request
processor-1  |     raise seen_exc_info[1]
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/applications.py", line 259, in __call__
processor-1  |     await self.__call__(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
processor-1  |     await super().__call__(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/applications.py", line 112, in __call__
processor-1  |     await self.middleware_stack(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 179, in __call__
processor-1  |     response = await run_in_threadpool(self.handler, request, exc)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     return await anyio.to_thread.run_sync(func)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     worker.start()
processor-1  |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     _start_new_thread(self._bootstrap, ())
processor-1  | RuntimeError: can't start new thread
processor-1  | 2025-04-23 12:31:47 [info     ] Process exited                 [supervisor] exit_code=<Negsignal.SIGTERM: -15> pid=745051 signal_sent=SIGTERM
processor-1  | [2025-04-23T12:31:47.736+0000] {process_utils.py:285} INFO - Waiting up to 5 seconds for processes to exit...
processor-1  |   + Exception Group Traceback (most recent call last):
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
processor-1  |   |     yield
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 177, in __call__
processor-1  |   |     async with anyio.create_task_group() as task_group:
processor-1  |   |                ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 772, in __aexit__
processor-1  |   |     raise BaseExceptionGroup(
processor-1  |   | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
processor-1  |   +-+---------------- 1 ----------------
processor-1  |     | Traceback (most recent call last):
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
processor-1  |     |     await self.app(scope, receive, _send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
processor-1  |     |     with recv_stream, send_stream, collapse_excgroups():
processor-1  |     |                                    ^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
processor-1  |     |     self.gen.throw(value)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
processor-1  |     |     response = await self.dispatch_func(request, call_next)
processor-1  |     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/middleware.py", line 124, in dispatch
processor-1  |     |     response = await call_next(request)
processor-1  |     |                ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
processor-1  |     |     raise app_exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
processor-1  |     |     await self.app(scope, receive_or_disconnect, send_no_error)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
processor-1  |     |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     |     await app(scope, receive, sender)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 93, in __call__
processor-1  |     |     await self.process_request(scope=scope, receive=receive, send=send, routes=routes)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 131, in process_request
processor-1  |     |     await route.handle(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
processor-1  |     |     await self.app(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
processor-1  |     |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     |     raise exc
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     |     await app(scope, receive, sender)
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
processor-1  |     |     response = await f(request)
processor-1  |     |                ^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/routing.py", line 291, in app
processor-1  |     |     solved_result = await solve_dependencies(
processor-1  |     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 640, in solve_dependencies
processor-1  |     |     solved = await run_in_threadpool(call, **solved_result.values)
processor-1  |     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     |     return await anyio.to_thread.run_sync(func)
processor-1  |     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |     |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     |     worker.start()
processor-1  |     |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     |     _start_new_thread(self._bootstrap, ())
processor-1  |     | RuntimeError: can't start new thread
processor-1  |     +------------------------------------
processor-1  |
processor-1  | During handling of the above exception, another exception occurred:
processor-1  |
processor-1  | Traceback (most recent call last):
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
processor-1  |     await self.app(scope, receive, _send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 176, in __call__
processor-1  |     with recv_stream, send_stream, collapse_excgroups():
processor-1  |                                    ^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
processor-1  |     self.gen.throw(value)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 178, in __call__
processor-1  |     response = await self.dispatch_func(request, call_next)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/middleware.py", line 124, in dispatch
processor-1  |     response = await call_next(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 156, in call_next
processor-1  |     raise app_exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/base.py", line 141, in coro
processor-1  |     await self.app(scope, receive_or_disconnect, send_no_error)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
processor-1  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     await app(scope, receive, sender)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 93, in __call__
processor-1  |     await self.process_request(scope=scope, receive=receive, send=send, routes=routes)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/routing.py", line 131, in process_request
processor-1  |     await route.handle(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
processor-1  |     await self.app(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
processor-1  |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
processor-1  |     raise exc
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
processor-1  |     await app(scope, receive, sender)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
processor-1  |     response = await f(request)
processor-1  |                ^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/routing.py", line 291, in app
processor-1  |     solved_result = await solve_dependencies(
processor-1  |                     ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 640, in solve_dependencies
processor-1  |     solved = await run_in_threadpool(call, **solved_result.values)
processor-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     return await anyio.to_thread.run_sync(func)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     worker.start()
processor-1  |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     _start_new_thread(self._bootstrap, ())
processor-1  | RuntimeError: can't start new thread
processor-1  |
processor-1  | During handling of the above exception, another exception occurred:
processor-1  |
processor-1  | Traceback (most recent call last):
processor-1  |   File "/usr/local/airflow/.local/bin/airflow", line 8, in <module>
processor-1  |     sys.exit(main())
processor-1  |              ^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/__main__.py", line 55, in main
processor-1  |     args.func(args)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/cli/cli_config.py", line 48, in command
processor-1  |     return func(*args, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/utils/cli.py", line 111, in wrapper
processor-1  |     return f(*args, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/utils/providers_configuration_loader.py", line 55, in wrapped_function
processor-1  |     return func(*args, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/dag_processor_command.py", line 54, in dag_processor
processor-1  |     run_command_with_daemon_option(
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/daemon_utils.py", line 86, in run_command_with_daemon_option
processor-1  |     callback()
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/dag_processor_command.py", line 57, in <lambda>
processor-1  |     callback=lambda: run_job(job=job_runner.job, execute_callable=job_runner._execute),
processor-1  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/utils/session.py", line 101, in wrapper
processor-1  |     return func(*args, session=session, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/jobs/job.py", line 347, in run_job
processor-1  |     return execute_job(job, execute_callable=execute_callable)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/jobs/job.py", line 376, in execute_job
processor-1  |     ret = execute_callable()
processor-1  |           ^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/jobs/dag_processor_job_runner.py", line 61, in _execute
processor-1  |     self.processor.run()
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 262, in run
processor-1  |     return self._run_parsing_loop()
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 349, in _run_parsing_loop
processor-1  |     self._service_processor_sockets(timeout=poll_time)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/manager.py", line 391, in _service_processor_sockets
processor-1  |     need_more = socket_handler(key.fileobj)
processor-1  |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/execution_time/supervisor.py", line 1169, in cb
processor-1  |     gen.send(line)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/execution_time/supervisor.py", line 554, in handle_requests
processor-1  |     self._handle_request(msg, log)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/dag_processing/processor.py", line 289, in _handle_request
processor-1  |     var = self.client.variables.get(msg.key)
processor-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/api/client.py", line 293, in get
processor-1  |     resp = self.client.get(f"variables/{key}")
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 1054, in get
processor-1  |     return self.request(
processor-1  |            ^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 338, in wrapped_f
processor-1  |     return copy(f, *args, **kw)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 477, in __call__
processor-1  |     do = self.iter(retry_state=retry_state)
processor-1  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 378, in iter
processor-1  |     result = action(retry_state)
processor-1  |              ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 400, in <lambda>
processor-1  |     self._add_action_func(lambda rs: rs.outcome.result())
processor-1  |                                      ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
processor-1  |     return self.__get_result()
processor-1  |            ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
processor-1  |     raise self._exception
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 480, in __call__
processor-1  |     result = fn(*args, **kwargs)
processor-1  |              ^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/airflow/sdk/api/client.py", line 629, in request
processor-1  |     return super().request(*args, **kwargs)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 827, in request
processor-1  |     return self.send(request, auth=auth, follow_redirects=follow_redirects)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 914, in send
processor-1  |     response = self._send_handling_auth(
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 942, in _send_handling_auth
processor-1  |     response = self._send_handling_redirects(
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
processor-1  |     response = self._send_single_request(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_client.py", line 1015, in _send_single_request
processor-1  |     response = transport.handle_request(request)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/httpx/_transports/wsgi.py", line 138, in handle_request
processor-1  |     raise seen_exc_info[1]
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/cadwyn/applications.py", line 259, in __call__
processor-1  |     await self.__call__(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
processor-1  |     await super().__call__(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/applications.py", line 112, in __call__
processor-1  |     await self.middleware_stack(scope, receive, send)
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 179, in __call__
processor-1  |     response = await run_in_threadpool(self.handler, request, exc)
processor-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/starlette/concurrency.py", line 37, in run_in_threadpool
processor-1  |     return await anyio.to_thread.run_sync(func)
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/to_thread.py", line 56, in run_sync
processor-1  |     return await get_async_backend().run_sync_in_worker_thread(
processor-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
processor-1  |   File "/usr/local/airflow/.local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2438, in run_sync_in_worker_thread
processor-1  |     worker.start()
processor-1  |   File "/usr/local/lib/python3.12/threading.py", line 994, in start
processor-1  |     _start_new_thread(self._bootstrap, ())
processor-1  | RuntimeError: can't start new thread

What you think should happen instead?

The dag-processor should be stable enough to run indefinitely

How to reproduce

Keep running dag-processor for long period of time.

Operating System

LM 21.3 with docker python:3.12-slim-bookworm

Versions of Apache Airflow Providers

No response

Deployment

Docker-Compose

Deployment details

No response

Anything else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions