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

ZanderXu updated HDFS-17536:
----------------------------
    Issue Type: Improvement  (was: Task)

> RBF: Format safe-mode related logic and fix a race 
> ---------------------------------------------------
>
>                 Key: HDFS-17536
>                 URL: https://issues.apache.org/jira/browse/HDFS-17536
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: ZanderXu
>            Assignee: ZanderXu
>            Priority: Major
>              Labels: pull-request-available
>
> RBF: Format safe-mode related logic and fix a race.
>  
> Both {{RouterAdminServer#enterSafeMode()}} and 
> {{RouterSafemodeService#periodicInvoke()#leave}} can change the router state 
> at the same time.
> Safe-mode change logic should be condensed into one method. And some races 
> may happen in the current implementation, such as:
>  # {{RouterAdminServer#enterSafeMode()}} set router stat to 
> {{RouterServiceState.SAFEMODE}}
>  # {{RouterSafemodeService#periodicInvoke()#leave}} got true when checking 
> {{safeMode && !isSafeModeSetManually}}
>  # {{RouterAdminServer#enterSafeMode()}} set {{safeMode}} and 
> {{isSafeModeSetManually}} to {{true}}
>  # {{RouterAdminServer#enterSafeMode()}} get {{true}} when checking safe-mode
>  # {{RouterSafemodeService#periodicInvoke()#leave}} call {{leave()}} to leave 
> safe-mode.
> This RBF is not in safe-mode and {{safeMode}} is {{{}false{}}}, but 
> {{isSafeModeSetManually}} is {{{}true{}}}.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to