diff --git a/packages/grpc-js-xds/src/xds-client.ts b/packages/grpc-js-xds/src/xds-client.ts index 1ebeccc3..168fc5ec 100644 --- a/packages/grpc-js-xds/src/xds-client.ts +++ b/packages/grpc-js-xds/src/xds-client.ts @@ -688,6 +688,13 @@ class LrsCallState { this.sendStats(); } + destroy() { + if (this.statsTimer) { + this.statsTimer = clearInterval(this.statsTimer); + } + return null; + } + private handleStreamStatus(status: StatusObject) { this.client.trace( 'LRS stream ended. code=' + status.code + ' details= ' + status.details @@ -938,7 +945,7 @@ class XdsSingleServerClient { } handleLrsStreamEnd() { - this.lrsCallState = null; + this.lrsCallState = this.lrsCallState ? this.lrsCallState.destroy() : null; /* The backoff timer would start the stream when it finishes. If it is not * running, restart the stream immediately. */ if (!this.lrsBackoff.isRunning()) {