You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Sumit Agrawal (Jira)" <ji...@apache.org> on 2026/06/11 03:17:00 UTC

[jira] [Resolved] (HDDS-15443) Close statemachine immediately on writeStateMachineData failure

     [ https://issues.apache.org/jira/browse/HDDS-15443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sumit Agrawal resolved HDDS-15443.
----------------------------------
    Fix Version/s: 2.2.0
       Resolution: Fixed

> Close statemachine immediately on writeStateMachineData failure
> ---------------------------------------------------------------
>
>                 Key: HDDS-15443
>                 URL: https://issues.apache.org/jira/browse/HDDS-15443
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: Ozone Datanode
>            Reporter: Sumit Agrawal
>            Assignee: Sumit Agrawal
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.2.0
>
>
> (Revised by [~szetszwo])
> When a datanode writeStateMachineData fails (e.g. disk-out-of-space) for a log entry of a client request, the applyTransaction can never happen for that request. Also, the datanode cannot append log entires anymore since writeStateMachineData failure is a RaftLog failure.
>  - (Bad case) If the datanode is a leader, it will never respond to the client for that request. The client will keep waiting for that request and retrying until either its RetryPolicy stops retrying or the RaftGroup is removed by SCM. By the default conf, the SCM will remove the RaftGroup in ~5min and the client will retry for much longer than 5min. As a result the client will hang for 5min and cannot write any other requests.
>  - (Better case) If the datanode is a follower, it will stop working since it cannot cannot append log entires anymore. The client is able to receive a reply from the leader for that request. Then, it will watch for ALL_COMMIT for the log entry of that request. Since a follower has failed, the watch ALL_COMMIT can never receive a reply unit watch timeout (default 3min). In this case, the client can continue writing other requests while it is waiting for the watch.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org