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)