Skip to content

Commit 920dd3a

Browse files
committed
fix: add isAvailable check in getInvoker to prevent idle eviction race condition
1 parent 953a3c6 commit 920dd3a

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

trpc-core/src/main/java/com/tencent/trpc/core/cluster/def/DefClusterInvoker.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ protected CompletionStage<Response> doInvoke(Request request, CompletionStage<Se
7272
protected ConsumerInvokerProxy<T> getInvoker(ServiceInstance instance) {
7373
String key = toUniqKey(instance);
7474
ConsumerInvokerProxy<T> result = invokerCache.get(key);
75-
return Optional.ofNullable(result).orElseGet(() -> createInvoker(instance));
75+
if (result != null && result.isAvailable()) {
76+
return result;
77+
}
78+
return createInvoker(instance);
7679
}
7780

7881
@SuppressWarnings("rawtypes")

0 commit comments

Comments
 (0)