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)