You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "ruanhui (Jira)" <ji...@apache.org> on 2023/07/20 04:57:00 UTC

[jira] [Created] (HBASE-27984) NPE in MigrateReplicationQueueFromZkToTableProcedure recovery

ruanhui created HBASE-27984:
-------------------------------

             Summary: NPE in MigrateReplicationQueueFromZkToTableProcedure recovery
                 Key: HBASE-27984
                 URL: https://issues.apache.org/jira/browse/HBASE-27984
             Project: HBase
          Issue Type: Bug
          Components: Replication
    Affects Versions: 3.0.0-alpha-4
            Reporter: ruanhui
             Fix For: 4.0.0-alpha-1


MigrateReplicationQueueFromZkToTableProcedure will restore the disabled state of replication log cleaner barrier when replayed in master recovery,
{code:java}
@Override
protected void afterReplay(MasterProcedureEnv env) {
  if (getCurrentState() == getInitialState()) {
    // do not need to disable log cleaner or acquire lock if we are in the initial state, later
    // when executing the procedure we will try to disable and acquire.
    return;
  }
  if (!env.getReplicationPeerManager().getReplicationLogCleanerBarrier().disable()) {
    throw new IllegalStateException("can not disable log cleaner, this should not happen");
  }
} {code}


however the replicationPeerManager has not been initialized when replay procedure, which will cause a nullPointerException and master to abort.

Maybe better to add a check after the initialization of replicationPeerManager to determine whether replication log cleaner barrier needs to be disabled ?



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