[
https://issues.apache.org/jira/browse/RATIS-2152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chung En Lee updated RATIS-2152:
--------------------------------
Summary: GrpcLogAppender stucks while sending an installSnapshot
notification request (was: The `done` should also lock in `AwaitForSignal`)
> GrpcLogAppender stucks while sending an installSnapshot notification request
> ----------------------------------------------------------------------------
>
> Key: RATIS-2152
> URL: https://issues.apache.org/jira/browse/RATIS-2152
> Project: Ratis
> Issue Type: Bug
> Reporter: Chung En Lee
> Assignee: Chung En Lee
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)