Skip to content

Commit f197652

Browse files
committed
Fix MCP vectorizer cleanup on shutdown failure
1 parent 24fec66 commit f197652

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

redisvl/mcp/server.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,16 @@ async def startup(self) -> None:
7676

7777
async def shutdown(self) -> None:
7878
"""Release owned vectorizer and Redis resources."""
79+
vectorizer = self._vectorizer
80+
self._vectorizer = None
7981
try:
80-
if self._vectorizer is not None:
81-
aclose = getattr(self._vectorizer, "aclose", None)
82-
close = getattr(self._vectorizer, "close", None)
82+
if vectorizer is not None:
83+
aclose = getattr(vectorizer, "aclose", None)
84+
close = getattr(vectorizer, "close", None)
8385
if callable(aclose):
8486
await aclose()
8587
elif callable(close):
8688
close()
87-
self._vectorizer = None
8889
finally:
8990
if self._index is not None:
9091
index = self._index

tests/integration/test_mcp/test_server_startup.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,6 @@ async def test_server_shutdown_disconnects_index_when_vectorizer_close_fails(
239239
await server.shutdown()
240240

241241
assert index.client is None
242+
243+
with pytest.raises(RuntimeError, match="has not been started"):
244+
await server.get_vectorizer()

0 commit comments

Comments
 (0)