[ 
https://issues.apache.org/jira/browse/HBASE-29044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17909480#comment-17909480
 ] 

qazwsx commented on HBASE-29044:
--------------------------------

If we add a processing condition in this line of code, can we handle this 
scenario?

 

 private void persistAndWake(MasterProcedureEnv env, RegionStateNode 
regionNode) {
    synchronized (this) {
      if (getState() == ProcedureState.ROLLEDBACK || getState() == 
ProcedureState.INITIALIZING) {
        LOG.warn("Procedure {} has already been rolled back, skip persistent", 
this);
        return;
      }
      
env.getMasterServices().getMasterProcedureExecutor().getStore().update(this);
    }
    regionNode.getProcedureEvent().wake(env.getProcedureScheduler());
  }

> Race between RegionRemoteProcedureBase and ServerCrashProcedure -> 
> RegionRemoteProcedureBase.serverCrashed operation could lead to INITIALIZING 
> state be persisent to procedure store
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-29044
>                 URL: https://issues.apache.org/jira/browse/HBASE-29044
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.4.14
>            Reporter: qazwsx
>            Priority: Major
>         Attachments: image-2025-01-02-16-50-49-740.png, 
> image-2025-01-02-16-58-21-371.png
>
>
> when create RegionRemoteProcedureBase procedure, 
> ServerCrashProcedure runs to RegionRemoteProcedureBase.serverCrashed, could 
> lead to INITIALIZING state be persisent to procedure store, lead the next 
> HMaster starting will abort. 
>  
> !image-2025-01-02-16-58-21-371.png!



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

Reply via email to