From 104350cf2e5ead80aac33adaf2d0fc29ba91924a Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Wed, 31 May 2017 15:04:10 -0700 Subject: [PATCH] core: include how long deadline was in Status message --- .../main/java/io/grpc/internal/ClientCallImpl.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/ClientCallImpl.java b/core/src/main/java/io/grpc/internal/ClientCallImpl.java index 59edd448a4..d72d4d8d08 100644 --- a/core/src/main/java/io/grpc/internal/ClientCallImpl.java +++ b/core/src/main/java/io/grpc/internal/ClientCallImpl.java @@ -292,18 +292,26 @@ final class ClientCallImpl extends ClientCall } private class DeadlineTimer implements Runnable { + private final long remainingNanos; + + DeadlineTimer(long remainingNanos) { + this.remainingNanos = remainingNanos; + } + @Override public void run() { // DelayedStream.cancel() is safe to call from a thread that is different from where the // stream is created. - stream.cancel(DEADLINE_EXCEEDED); + stream.cancel(DEADLINE_EXCEEDED.augmentDescription( + String.format("deadline exceeded after %dns", remainingNanos))); } } private ScheduledFuture startDeadlineTimer(Deadline deadline) { + long remainingNanos = deadline.timeRemaining(TimeUnit.NANOSECONDS); return deadlineCancellationExecutor.schedule( - new LogExceptionRunnable(new DeadlineTimer()), deadline.timeRemaining(TimeUnit.NANOSECONDS), - TimeUnit.NANOSECONDS); + new LogExceptionRunnable( + new DeadlineTimer(remainingNanos)), remainingNanos, TimeUnit.NANOSECONDS); } @Nullable