fix(mcp): close existing client before reassignment to prevent leaks (#8253)
This commit is contained in:
@@ -266,6 +266,13 @@ export namespace MCP {
|
|||||||
status: s.status,
|
status: s.status,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Close existing client if present to prevent memory leaks
|
||||||
|
const existingClient = s.clients[name]
|
||||||
|
if (existingClient) {
|
||||||
|
await existingClient.close().catch((error) => {
|
||||||
|
log.error("Failed to close existing MCP client", { name, error })
|
||||||
|
})
|
||||||
|
}
|
||||||
s.clients[name] = result.mcpClient
|
s.clients[name] = result.mcpClient
|
||||||
s.status[name] = result.status
|
s.status[name] = result.status
|
||||||
|
|
||||||
@@ -523,6 +530,13 @@ export namespace MCP {
|
|||||||
const s = await state()
|
const s = await state()
|
||||||
s.status[name] = result.status
|
s.status[name] = result.status
|
||||||
if (result.mcpClient) {
|
if (result.mcpClient) {
|
||||||
|
// Close existing client if present to prevent memory leaks
|
||||||
|
const existingClient = s.clients[name]
|
||||||
|
if (existingClient) {
|
||||||
|
await existingClient.close().catch((error) => {
|
||||||
|
log.error("Failed to close existing MCP client", { name, error })
|
||||||
|
})
|
||||||
|
}
|
||||||
s.clients[name] = result.mcpClient
|
s.clients[name] = result.mcpClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user