From 02083423b8a635e6070b5bd2a2bbca10550e84eb Mon Sep 17 00:00:00 2001 From: amaliujia Date: Thu, 5 Nov 2026 13:09:48 +0800 Subject: [PATCH] Change GrpcLogAppender.appendEntriesIndex to volatile and drop the readlock --- .../java/org/apache/ratis/grpc/server/GrpcLogAppender.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java index e5eb57d0e1..d1cdb2bb7d 100644 --- a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java +++ b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java @@ -165,7 +165,7 @@ synchronized int process(Event event) { @SuppressWarnings({"squid:S3077"}) // Suppress volatile for generic type private volatile StreamObservers appendLogRequestObserver; // the appendEntries channel of this appender, taken when it creates its first stream; guarded by the write lock - private int appendEntriesIndex = -1; + private volatile int appendEntriesIndex = -1; private final boolean useSeparateHBChannel; private final GrpcServerMetrics grpcServerMetrics; @@ -427,9 +427,7 @@ void onCompleted() { @VisibleForTesting int getAppendEntriesIndex() { - try (AutoCloseableLock readLock = lock.readLock(caller, LOG::trace)) { - return appendEntriesIndex; - } + return appendEntriesIndex; } @Override