Skip to content

Commit fb2820a

Browse files
authored
HBASE-28928 Handle NPE in Split/Merge table when getMasterQuotaManager returns null (#6375) (#6395)
Signed-off-by: Nihal Jain <[email protected]>
1 parent 197169b commit fb2820a

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

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;
@@ -539,7 +540,10 @@ private void preMergeRegions(final MasterProcedureEnv env) throws IOException {
539540
}
540541
// TODO: Clean up split and merge. Currently all over the place.
541542
try {
542-
env.getMasterServices().getMasterQuotaManager().onRegionMerged(this.mergedRegion);
543+
MasterQuotaManager masterQuotaManager = env.getMasterServices().getMasterQuotaManager();
544+
if (masterQuotaManager != null) {
545+
masterQuotaManager.onRegionMerged(this.mergedRegion);
546+
}
543547
} catch (QuotaExceededException e) {
544548
// TODO: why is this here? merge requests can be submitted by actors other than the normalizer
545549
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;
@@ -598,7 +599,10 @@ private void preSplitRegion(final MasterProcedureEnv env)
598599
// TODO: Clean up split and merge. Currently all over the place.
599600
// Notify QuotaManager and RegionNormalizer
600601
try {
601-
env.getMasterServices().getMasterQuotaManager().onRegionSplit(this.getParentRegion());
602+
MasterQuotaManager masterQuotaManager = env.getMasterServices().getMasterQuotaManager();
603+
if (masterQuotaManager != null) {
604+
masterQuotaManager.onRegionSplit(this.getParentRegion());
605+
}
602606
} catch (QuotaExceededException e) {
603607
// TODO: why is this here? split requests can be submitted by actors other than the normalizer
604608
env.getMasterServices().getRegionNormalizerManager()

0 commit comments

Comments
 (0)