From 2cdbc936676d22c05a1f87740b4d480ba1719c58 Mon Sep 17 00:00:00 2001 From: Matthijs Dabroek Date: Fri, 14 Oct 2022 17:30:44 +0200 Subject: [PATCH 1/2] Add reject multi chain on client disconnect assertion to client test suite --- packages/client/lib/client/index.spec.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/client/lib/client/index.spec.ts b/packages/client/lib/client/index.spec.ts index d27bcc2b78d..27cb86d657e 100644 --- a/packages/client/lib/client/index.spec.ts +++ b/packages/client/lib/client/index.spec.ts @@ -425,6 +425,19 @@ describe('Client', () => { ); }, GLOBAL.SERVERS.OPEN); + testUtils.testWithClient('should reject the whole chain upon client disconnect', async client => { + await client.disconnect(); + + return assert.rejects( + client.multi() + .ping() + .set('key', 'value') + .get('key') + .exec(), + ClientClosedError + ); + }, GLOBAL.SERVERS.OPEN); + testUtils.testWithClient('with script', async client => { assert.deepEqual( await client.multi() From d669a20c65c2d5a9619d82cb01c13781f2d7a3d3 Mon Sep 17 00:00:00 2001 From: Matthijs Dabroek Date: Fri, 14 Oct 2022 17:32:13 +0200 Subject: [PATCH 2/2] Reject multi chain exec with client closed error after client disconnect --- packages/client/lib/client/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/client/lib/client/index.ts b/packages/client/lib/client/index.ts index 2032c4fb714..52895c73c3e 100644 --- a/packages/client/lib/client/index.ts +++ b/packages/client/lib/client/index.ts @@ -611,6 +611,10 @@ export default class RedisClient< selectedDB?: number, chainId?: symbol ): Promise> { + if (!this.#socket.isOpen) { + return Promise.reject(new ClientClosedError()); + } + const promise = Promise.all( commands.map(({ args }) => { return this.#queue.addCommand(args, { chainId });