Skip to content

Commit 7e342f5

Browse files
authored
HBASE-28928 Handle NPE in Split/Merge table when getMasterQuotaManager returns null (#6375) (#6393)
Signed-off-by: Nihal Jain <nihaljain@apache.org>
1 parent 0a5bec4 commit 7e342f5

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;
5252
import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;
5353
import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
54+
import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
5455
import org.apache.hadoop.hbase.quotas.QuotaExceededException;
5556
import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;
5657
import org.apache.hadoop.hbase.regionserver.HStoreFile;
@@ -540,7 +541,10 @@ private void preMergeRegions(final MasterProcedureEnv env) throws IOException {
540541
}
541542
// TODO: Clean up split and merge. Currently all over the place.
542543
try {
543-
env.getMasterServices().getMasterQuotaManager().onRegionMerged(this.mergedRegion);
544+
MasterQuotaManager masterQuotaManager = env.getMasterServices().getMasterQuotaManager();
545+
if (masterQuotaManager != null) {
546+
masterQuotaManager.onRegionMerged(this.mergedRegion);
547+
}
544548
} catch (QuotaExceededException e) {
545549
// TODO: why is this here? merge requests can be submitted by actors other than the normalizer
546550
env.getMasterServices().getRegionNormalizerManager()

hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;
5858
import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;
5959
import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
60+
import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
6061
import org.apache.hadoop.hbase.quotas.QuotaExceededException;
6162
import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;
6263
import org.apache.hadoop.hbase.regionserver.HStore;
@@ -601,7 +602,10 @@ private void preSplitRegion(final MasterProcedureEnv env)
601602
// TODO: Clean up split and merge. Currently all over the place.
602603
// Notify QuotaManager and RegionNormalizer
603604
try {
604-
env.getMasterServices().getMasterQuotaManager().onRegionSplit(this.getParentRegion());
605+
MasterQuotaManager masterQuotaManager = env.getMasterServices().getMasterQuotaManager();
606+
if (masterQuotaManager != null) {
607+
masterQuotaManager.onRegionSplit(this.getParentRegion());
608+
}
605609
} catch (QuotaExceededException e) {
606610
// TODO: why is this here? split requests can be submitted by actors other than the normalizer
607611
env.getMasterServices().getRegionNormalizerManager()

0 commit comments

Comments
 (0)