Skip to content

Commit c831f1e

Browse files
committed
11622 : OutlierDetection should use Ticker, not TimeProvider
1 parent 3735a6c commit c831f1e

File tree

3 files changed

+3
-4
lines changed

3 files changed

+3
-4
lines changed

binder/src/main/java/io/grpc/binder/internal/PingTracker.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,9 @@ private synchronized void fail(Status status) {
104104
}
105105

106106
private synchronized void success() {
107-
long currentTickerTimeNanos = ticker.read();
108107
if (!done) {
109108
done = true;
110-
executor.execute(() -> callback.onSuccess(currentTickerTimeNanos - startTimeNanos));
109+
executor.execute(() -> callback.onSuccess(ticker.read() - startTimeNanos));
111110
}
112111
}
113112
}

netty/src/main/java/io/grpc/netty/AbstractNettyHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public void updateWindow() throws Http2Exception {
200200
setPinging(false);
201201

202202
long currentTickerTimeNanos = ticker.read();
203-
long elapsedTime = (currentTickerTimeNanos - lastPingTime);
203+
long elapsedTime = Math.max(0L,(currentTickerTimeNanos - lastPingTime));
204204
if (elapsedTime == 0) {
205205
elapsedTime = 1;
206206
}

util/src/main/java/io/grpc/util/OutlierDetectionLoadBalancer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public Status acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
149149
initialDelayNanos = config.intervalNanos;
150150
} else {
151151
long currentTickerTimeNanos = ticker.read();
152-
long elapsedTimeNanos = currentTickerTimeNanos - detectionTimerStartNanos;
152+
long elapsedTimeNanos = Math.max(0L,(currentTickerTimeNanos - detectionTimerStartNanos));
153153
// If a timer has started earlier we cancel it and use the difference between the start
154154
// time and now as the interval.
155155
initialDelayNanos = Math.max(0L,

0 commit comments

Comments
 (0)