Skip to content

Commit f0175b7

Browse files
authored
Merge pull request #516 from IBM/fix-session-bug
Use a separate pubsub for each session
2 parents bca86be + 496df92 commit f0175b7

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

mcpgateway/cache/session_registry.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -542,10 +542,11 @@ async def respond(
542542
await self.generate_response(message=message, transport=transport, server_id=server_id, user=user, base_url=base_url)
543543

544544
elif self._backend == "redis":
545-
await self._pubsub.subscribe(session_id)
545+
pubsub = self._redis.pubsub()
546+
await pubsub.subscribe(session_id)
546547

547548
try:
548-
async for msg in self._pubsub.listen():
549+
async for msg in pubsub.listen():
549550
if msg["type"] != "message":
550551
continue
551552
data = json.loads(msg["data"])
@@ -558,7 +559,8 @@ async def respond(
558559
except asyncio.CancelledError:
559560
logger.info(f"PubSub listener for session {session_id} cancelled")
560561
finally:
561-
await self._pubsub.unsubscribe(session_id)
562+
await pubsub.unsubscribe(session_id)
563+
await pubsub.close()
562564
logger.info(f"Cleaned up pubsub for session {session_id}")
563565

564566
elif self._backend == "database":

0 commit comments

Comments
 (0)