From 36db24e39f0931a5c16a2c9add6350df45b84a29 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Fri, 28 Aug 2020 12:50:53 -0700 Subject: [PATCH] Set a deadline on outgoing requests in the xds interop client --- packages/grpc-js/interop/xds-interop-client.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/grpc-js/interop/xds-interop-client.ts b/packages/grpc-js/interop/xds-interop-client.ts index d9d7c441..949da238 100644 --- a/packages/grpc-js/interop/xds-interop-client.ts +++ b/packages/grpc-js/interop/xds-interop-client.ts @@ -37,6 +37,8 @@ const packageDefinition = protoLoader.loadSync('grpc/testing/test.proto', { const loadedProto = grpc.loadPackageDefinition(packageDefinition) as unknown as ProtoGrpcType; +const REQUEST_TIMEOUT_SEC = 20; + interface CallEndNotifier { onCallSucceeded(peerName: string): void; onCallFailed(message: string): void; @@ -151,7 +153,9 @@ function sendConstantQps(client: TestServiceClient, qps: number, failOnFailedRpc let hostname: string | null = null; let completed: boolean = false; let completedWithError: boolean = false; - const call = client.emptyCall({}, (error, value) => { + const deadline = new Date(); + deadline.setSeconds(deadline.getSeconds() + REQUEST_TIMEOUT_SEC); + const call = client.emptyCall({}, {deadline}, (error, value) => { if (error) { if (failOnFailedRpcs && anyCallSucceeded) { console.error('A call failed after a call succeeded');