Fedora Account System
Red Hat Associate
Red Hat Customer
Hello, Please note that this comment was generated automatically by https://forge.fedoraproject.org/releng/tooling/src/branch/main/release-process/bug-filing/follow-policy/follow_policy.py If you feel that this output has mistakes, please open an issue at https://forge.fedoraproject.org/releng/tickets/issues Your package (python-fastmcp) Fails To Install in Fedora 45: can't install python3-fastmcp+openai: - nothing provides python(abi) = 3.14 needed by python3-fastmcp+openai-2.14.7-2.fc45.noarch - nothing provides python3.14dist(openai) >= 1.102 needed by python3-fastmcp+openai-2.14.7-2.fc45.noarch can't install python3-fastmcp: - nothing provides python(abi) = 3.14 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(packaging) >= 20 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(httpx) >= 0.28.1 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(rich) >= 13.9.4 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides (python3.14dist(authlib) < 1.6.5~~ with python3.14dist(authlib) >= 1.4) needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides (python3.14dist(mcp) < 2~~ with python3.14dist(mcp) >= 1.24) needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides (python3.14dist(pyperclip) < 1.9~~ with python3.14dist(pyperclip) >= 1.8.2) needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(cyclopts) >= 4 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(jsonref) >= 1.1 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(jsonschema-path) >= 0.3.4 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(openapi-pydantic) >= 0.5.1 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(platformdirs) >= 4 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(pydantic) >= 2.11.7 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(pydantic[email]) >= 2.11.7 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(python-dotenv) >= 1.1 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(uvicorn) >= 0.35 needed by python3-fastmcp-2.14.7-2.fc45.noarch - nothing provides python3.14dist(websockets) >= 15.0.1 needed by python3-fastmcp-2.14.7-2.fc45.noarch If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem. If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks. P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors. To reproduce, use the koji/local repo only, e.g. in mock: $ mock -r fedora-45-x86_64 --config-opts mirrored=False install python3-fastmcp+openai python3-fastmcp P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updating-inter-dependent-packages Thanks!
Hello, Please note that this comment was generated automatically by https://forge.fedoraproject.org/releng/tooling/src/branch/main/release-process/bug-filing/follow-policy/follow_policy.py If you feel that this output has mistakes, please open an issue at https://forge.fedoraproject.org/releng/tickets/issues This package fails to install and maintainers are advised to take one of the following actions: - Fix this bug and close this bugzilla once the update makes it to the repository. (The same script that posted this comment will eventually close this bugzilla when the fixed package reaches the repository, so you don't have to worry about it.) or - Move this bug to ASSIGNED if you plan on fixing this, but simply haven't done so yet. or - Orphan the package if you no longer plan to maintain it. If you do not take one of these actions, the process at https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs will continue. This package may be orphaned in 7+ weeks. This is the first reminder (step 3) from the policy. Don't hesitate to ask for help on https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ if you are unsure how to fix this bug.
=================================== FAILURES =================================== ________ TestStatefulProxyClient.test_concurrent_log_requests_no_mixing ________ self = <tests.server.proxy.test_stateful_proxy_client.TestStatefulProxyClient object at 0xffffa9b62c10> stateful_proxy_server = FastMCPProxy('FastMCPProxy-3e04') async def test_concurrent_log_requests_no_mixing( self, stateful_proxy_server: FastMCP ): """Test that concurrent log requests don't mix handlers (fixes #1068).""" results: dict[str, LogMessage] = {} async def log_handler_a(message: LogMessage) -> None: results["logger_a"] = message async def log_handler_b(message: LogMessage) -> None: results["logger_b"] = message async with ( > Client(stateful_proxy_server, log_handler=log_handler_a) as client_a, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Client(stateful_proxy_server, log_handler=log_handler_b) as client_b, ): tests/server/proxy/test_stateful_proxy_client.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:503: in __aexit__ await self._disconnect() ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:630: in _disconnect await self._session_state.session_task ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648: in _session_runner async with AsyncExitStack() as stack: ^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:813: in __aexit__ raise exc /usr/lib64/python3.15/contextlib.py:796: in __aexit__ cb_suppress = await cb(*exc_details) ^^^^^^^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:283: in __aexit__ await anext(self.gen) ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:425: in _context_manager with catch(get_catch_handlers()): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:39: in __exit__ raise unhandled from exc.__cause__ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:65: in handle_exception result = handler(matched) ^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/utilities/exceptions.py:29: in _exception_handler raise leaf _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <anyio._backends._asyncio.CancelScope object at 0xffffa54dd4f0> exc_type = <class 'asyncio.exceptions.CancelledError'> exc_val = CancelledError("Cancelled via cancel scope ffffa54def30 by <Task pending name='Task-9347' coro=<Client._session_runner...astmcp-2.14.7-build/BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648> cb=[Task.task_wakeup()]>") def __exit__( self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None, ) -> bool: del exc_tb if not self._active: raise RuntimeError("This cancel scope is not active") if current_task() is not self._host_task: raise RuntimeError( "Attempted to exit cancel scope in a different task than it was " "entered in" ) assert self._host_task is not None host_task_state = _task_states.get(self._host_task) if host_task_state is None or host_task_state.cancel_scope is not self: > raise RuntimeError( "Attempted to exit a cancel scope that isn't the current tasks's " "current cancel scope" ) E RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope /usr/lib/python3.15/site-packages/anyio/_backends/_asyncio.py:472: RuntimeError ----------------------------- Captured stderr call ----------------------------- [06/23/26 13:59:41] DEBUG Sending INFO to client (b): Hello, context.py:1044 world! DEBUG Sending INFO to client (a): Hello, context.py:1044 world! DEBUG Sending INFO to client (b): Hello, context.py:1044 world! DEBUG Sending INFO to client (a): Hello, context.py:1044 world! _________________ TestStatefulProxyClient.test_stateful_proxy __________________ self = <tests.server.proxy.test_stateful_proxy_client.TestStatefulProxyClient object at 0xffffa9b62d50> stateful_proxy_server = FastMCPProxy('FastMCPProxy-1ccb') async def test_stateful_proxy(self, stateful_proxy_server: FastMCP): """Test that the state shared across multiple calls for the same client (fixes #959).""" > async with Client(stateful_proxy_server) as client: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/server/proxy/test_stateful_proxy_client.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:503: in __aexit__ await self._disconnect() ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:630: in _disconnect await self._session_state.session_task ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648: in _session_runner async with AsyncExitStack() as stack: ^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:813: in __aexit__ raise exc /usr/lib64/python3.15/contextlib.py:796: in __aexit__ cb_suppress = await cb(*exc_details) ^^^^^^^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:283: in __aexit__ await anext(self.gen) ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:425: in _context_manager with catch(get_catch_handlers()): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:39: in __exit__ raise unhandled from exc.__cause__ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:65: in handle_exception result = handler(matched) ^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/utilities/exceptions.py:29: in _exception_handler raise leaf _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <anyio._backends._asyncio.CancelScope object at 0xffffa552d590> exc_type = <class 'asyncio.exceptions.CancelledError'> exc_val = CancelledError("Cancelled via cancel scope ffffa552c910 by <Task pending name='Task-9379' coro=<Client._session_runner...astmcp-2.14.7-build/BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648> cb=[Task.task_wakeup()]>") def __exit__( self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None, ) -> bool: del exc_tb if not self._active: raise RuntimeError("This cancel scope is not active") if current_task() is not self._host_task: raise RuntimeError( "Attempted to exit cancel scope in a different task than it was " "entered in" ) assert self._host_task is not None host_task_state = _task_states.get(self._host_task) if host_task_state is None or host_task_state.cancel_scope is not self: > raise RuntimeError( "Attempted to exit a cancel scope that isn't the current tasks's " "current cancel scope" ) E RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope /usr/lib/python3.15/site-packages/anyio/_backends/_asyncio.py:472: RuntimeError _____________ TestStatefulProxyClient.test_multi_proxies_no_mixing _____________ self = <tests.server.proxy.test_stateful_proxy_client.TestStatefulProxyClient object at 0xffffa9330180> async def test_multi_proxies_no_mixing(self): """Test that the stateful proxy client won't be mixed in multi-proxies sessions.""" mcp_a, mcp_b = FastMCP(), FastMCP() @mcp_a.tool def tool_a() -> str: return "a" @mcp_b.tool def tool_b() -> str: return "b" proxy_mcp_a = FastMCPProxy( client_factory=StatefulProxyClient(mcp_a).new_stateful ) proxy_mcp_b = FastMCPProxy( client_factory=StatefulProxyClient(mcp_b).new_stateful ) multi_proxy_mcp = FastMCP() multi_proxy_mcp.mount(proxy_mcp_a, prefix="a") multi_proxy_mcp.mount(proxy_mcp_b, prefix="b") > async with Client(multi_proxy_mcp) as client: ^^^^^^^^^^^^^^^^^^^^^^^ tests/server/proxy/test_stateful_proxy_client.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:503: in __aexit__ await self._disconnect() ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:630: in _disconnect await self._session_state.session_task ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648: in _session_runner async with AsyncExitStack() as stack: ^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:813: in __aexit__ raise exc /usr/lib64/python3.15/contextlib.py:796: in __aexit__ cb_suppress = await cb(*exc_details) ^^^^^^^^^^^^^^^^^^^^^^ /usr/lib64/python3.15/contextlib.py:283: in __aexit__ await anext(self.gen) ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:425: in _context_manager with catch(get_catch_handlers()): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:39: in __exit__ raise unhandled from exc.__cause__ /usr/lib/python3.15/site-packages/exceptiongroup/_catch.py:65: in handle_exception result = handler(matched) ^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/utilities/exceptions.py:29: in _exception_handler raise leaf _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <anyio._backends._asyncio.CancelScope object at 0xffffa54df2f0> exc_type = <class 'asyncio.exceptions.CancelledError'> exc_val = CancelledError("Cancelled via cancel scope ffffa54dead0 by <Task pending name='Task-9482' coro=<Client._session_runner...astmcp-2.14.7-build/BUILDROOT/usr/lib/python3.15/site-packages/fastmcp/client/client.py:648> cb=[Task.task_wakeup()]>") def __exit__( self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None, ) -> bool: del exc_tb if not self._active: raise RuntimeError("This cancel scope is not active") if current_task() is not self._host_task: raise RuntimeError( "Attempted to exit cancel scope in a different task than it was " "entered in" ) assert self._host_task is not None host_task_state = _task_states.get(self._host_task) if host_task_state is None or host_task_state.cancel_scope is not self: > raise RuntimeError( "Attempted to exit a cancel scope that isn't the current tasks's " "current cancel scope" ) E RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope /usr/lib/python3.15/site-packages/anyio/_backends/_asyncio.py:472: RuntimeError