From ba31c8a50e73bd19825f3eb779270343c0fff205 Mon Sep 17 00:00:00 2001 From: Leibale Eidelman Date: Wed, 26 Apr 2023 12:56:42 -0400 Subject: [PATCH] fix #2443 - fix multiple sockets on error in socket initiator (#2480) * fix #2443 - fix multiple sockets on error in socket initiator * handle `error` events in test --- packages/client/lib/client/index.spec.ts | 3 +++ packages/client/lib/client/socket.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/client/lib/client/index.spec.ts b/packages/client/lib/client/index.spec.ts index 7396a2e9c3..b608c7c092 100644 --- a/packages/client/lib/client/index.spec.ts +++ b/packages/client/lib/client/index.spec.ts @@ -647,6 +647,9 @@ describe('Client', () => { }); testUtils.testWithClient('should propagated errors from "isolated" clients', client => { + client.on('error', () => { + // ignore errors + }); return client.executeIsolated(isolated => killClient(isolated, client)); }, GLOBAL.SERVERS.OPEN); diff --git a/packages/client/lib/client/socket.ts b/packages/client/lib/client/socket.ts index ac3b7f5bf3..89533350f5 100644 --- a/packages/client/lib/client/socket.ts +++ b/packages/client/lib/client/socket.ts @@ -199,7 +199,7 @@ export default class RedisSocket extends EventEmitter { .off('error', reject) .once('error', (err: Error) => this.#onSocketError(err)) .once('close', hadError => { - if (!hadError && this.#isOpen && this.#socket === socket) { + if (!hadError && this.#isReady && this.#socket === socket) { this.#onSocketError(new SocketClosedUnexpectedlyError()); } })