From 736d6df80b0065d5048b7bcadeb44317898a08cb Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Thu, 16 Nov 2023 10:19:26 -0800 Subject: [PATCH] grpc-js: Return the result from the UDS resolver only once --- packages/grpc-js/src/resolver-uds.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/grpc-js/src/resolver-uds.ts b/packages/grpc-js/src/resolver-uds.ts index 24095ec2..2110e856 100644 --- a/packages/grpc-js/src/resolver-uds.ts +++ b/packages/grpc-js/src/resolver-uds.ts @@ -21,6 +21,7 @@ import { ChannelOptions } from './channel-options'; class UdsResolver implements Resolver { private addresses: SubchannelAddress[] = []; + private hasReturnedResult = false; constructor( target: GrpcUri, private listener: ResolverListener, @@ -35,14 +36,17 @@ class UdsResolver implements Resolver { this.addresses = [{ path }]; } updateResolution(): void { - process.nextTick( - this.listener.onSuccessfulResolution, - this.addresses, - null, - null, - null, - {} - ); + if (!this.hasReturnedResult) { + this.hasReturnedResult = true; + process.nextTick( + this.listener.onSuccessfulResolution, + this.addresses, + null, + null, + null, + {} + ); + } } destroy() {