diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index 8519f5dfd..17fb1a2e5 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -1,6 +1,6 @@ { "name": "@grpc/grpc-js", - "version": "1.2.2", + "version": "1.2.3", "description": "gRPC Library for Node - pure JS implementation", "homepage": "https://grpc.io/", "repository": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js", diff --git a/packages/grpc-js/src/deadline-filter.ts b/packages/grpc-js/src/deadline-filter.ts index 2306bb8f5..99bfa2bec 100644 --- a/packages/grpc-js/src/deadline-filter.ts +++ b/packages/grpc-js/src/deadline-filter.ts @@ -56,10 +56,14 @@ export class DeadlineFilter extends BaseFilter implements Filter { } const now: number = new Date().getTime(); let timeout = this.deadline - now; - if (timeout < 0) { - timeout = 0; - } - if (this.deadline !== Infinity) { + if (timeout <= 0) { + process.nextTick(() => { + callStream.cancelWithStatus( + Status.DEADLINE_EXCEEDED, + 'Deadline exceeded' + ); + }); + } else if (this.deadline !== Infinity) { this.timer = setTimeout(() => { callStream.cancelWithStatus( Status.DEADLINE_EXCEEDED,