From 2c648ff82d1285f034551270b86e99af492d4d4c Mon Sep 17 00:00:00 2001 From: Luis Chavez Date: Mon, 30 Dec 2024 18:58:55 -0500 Subject: [PATCH 1/2] fix(createVectorStoreNode): Prevent connection leaks in PGVectorStore pool --- .../nodes/vector_store/shared/createVectorStoreNode.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/@n8n/nodes-langchain/nodes/vector_store/shared/createVectorStoreNode.ts b/packages/@n8n/nodes-langchain/nodes/vector_store/shared/createVectorStoreNode.ts index 84f1d550e5..04f2a4cf29 100644 --- a/packages/@n8n/nodes-langchain/nodes/vector_store/shared/createVectorStoreNode.ts +++ b/packages/@n8n/nodes-langchain/nodes/vector_store/shared/createVectorStoreNode.ts @@ -4,6 +4,7 @@ import type { Document } from '@langchain/core/documents'; import type { Embeddings } from '@langchain/core/embeddings'; import type { VectorStore } from '@langchain/core/vectorstores'; import { NodeConnectionType, NodeOperationError } from 'n8n-workflow'; +import { PGVectorStore } from '@langchain/community/vectorstores/pgvector'; import type { IExecuteFunctions, INodeCredentialDescription, @@ -395,7 +396,14 @@ export const createVectorStoreNode = (args: VectorStoreNodeConstructorArgs) => if (mode === 'retrieve') { const vectorStore = await args.getVectorStoreClient(this, filter, embeddings, itemIndex); + + async function closeFunction() { + const pgVectorStore = vectorStore as PGVectorStore; + void pgVectorStore?.client?.release(); + } + return { + closeFunction, response: logWrapper(vectorStore, this), }; } From 0db1a063f843d7c483d055eb412fb06f7f501f51 Mon Sep 17 00:00:00 2001 From: Luis Chavez Date: Tue, 31 Dec 2024 03:39:42 -0500 Subject: [PATCH 2/2] fix(MemoryPostgresChat): It is not necessary to close the pool connections --- .../memory/MemoryPostgresChat/MemoryPostgresChat.node.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/@n8n/nodes-langchain/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.ts b/packages/@n8n/nodes-langchain/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.ts index 18fd76e3c5..ef65b4be1d 100644 --- a/packages/@n8n/nodes-langchain/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.ts @@ -115,12 +115,7 @@ export class MemoryPostgresChat implements INodeType { ...kOptions, }); - async function closeFunction() { - void pool.end(); - } - return { - closeFunction, response: logWrapper(memory, this), }; }