Description
In `GrpcLogAppender`, it waits for signal at the end of `notifyInstallSnapshot` as following.
https://github.com/apache/ratis/blob/master/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java#L825-L831
However, checking whether the `InstallSnapshotResponseHandler` is done and the call `AwaitForSignal.await()` are not atomic. This creates a potential race condition where InstallSnapshotResponseHandler.close() could finish after the check but before the wait, causing that `GrpcLogAppender` is still waiting even though `InstallSnapshotResponseHandler` has already completed, leading to timeout.
Attachments
Issue Links
- causes
-
HDDS-11358 Intermittent RATIS_BOOTSTRAP_ERROR in TestAddRemoveOzoneManager#testForceBootstrap
- Resolved
- links to