Spaces:
Running
Running
Merge pull request #523 from jlowin/server-hang
Browse files
src/fastmcp/client/client.py
CHANGED
|
@@ -3,6 +3,7 @@ from contextlib import AsyncExitStack, asynccontextmanager
|
|
| 3 |
from pathlib import Path
|
| 4 |
from typing import Any, cast
|
| 5 |
|
|
|
|
| 6 |
import mcp.types
|
| 7 |
from exceptiongroup import catch
|
| 8 |
from mcp import ClientSession
|
|
@@ -158,10 +159,12 @@ class Client:
|
|
| 158 |
) as session:
|
| 159 |
self._session = session
|
| 160 |
# Initialize the session
|
| 161 |
-
self._initialize_result = await self._session.initialize()
|
| 162 |
-
|
| 163 |
try:
|
|
|
|
|
|
|
| 164 |
yield
|
|
|
|
|
|
|
| 165 |
finally:
|
| 166 |
self._exit_stack = None
|
| 167 |
self._session = None
|
|
|
|
| 3 |
from pathlib import Path
|
| 4 |
from typing import Any, cast
|
| 5 |
|
| 6 |
+
import anyio
|
| 7 |
import mcp.types
|
| 8 |
from exceptiongroup import catch
|
| 9 |
from mcp import ClientSession
|
|
|
|
| 159 |
) as session:
|
| 160 |
self._session = session
|
| 161 |
# Initialize the session
|
|
|
|
|
|
|
| 162 |
try:
|
| 163 |
+
with anyio.fail_after(1):
|
| 164 |
+
self._initialize_result = await self._session.initialize()
|
| 165 |
yield
|
| 166 |
+
except TimeoutError:
|
| 167 |
+
raise RuntimeError("Failed to initialize server session")
|
| 168 |
finally:
|
| 169 |
self._exit_stack = None
|
| 170 |
self._session = None
|