Skip to content

Commit bbf953b

Browse files
committed
HBASE-25523 Region normalizer chore thread is getting killed
1 parent 2eb2c96 commit bbf953b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

hbase-server/src/main/java/org/apache/hadoop/hbase/master/normalizer/SimpleRegionNormalizer.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.apache.hadoop.conf.Configuration;
2929
import org.apache.hadoop.hbase.HBaseInterfaceAudience;
3030
import org.apache.hadoop.hbase.RegionMetrics;
31+
import org.apache.hadoop.hbase.ServerMetrics;
3132
import org.apache.hadoop.hbase.ServerName;
3233
import org.apache.hadoop.hbase.Size;
3334
import org.apache.hadoop.hbase.TableName;
@@ -256,8 +257,16 @@ public List<NormalizationPlan> computePlansForTable(final TableName table) {
256257
private long getRegionSizeMB(RegionInfo hri) {
257258
ServerName sn =
258259
masterServices.getAssignmentManager().getRegionStates().getRegionServerOfRegion(hri);
259-
RegionMetrics regionLoad =
260-
masterServices.getServerManager().getLoad(sn).getRegionMetrics().get(hri.getRegionName());
260+
if (sn == null) {
261+
LOG.debug("{} region was not found on any Server", hri.getRegionNameAsString());
262+
return -1;
263+
}
264+
ServerMetrics serverMetrics = masterServices.getServerManager().getLoad(sn);
265+
if (serverMetrics == null) {
266+
LOG.debug("server {} was not found in ServerManager", sn.getServerName());
267+
return -1;
268+
}
269+
RegionMetrics regionLoad = serverMetrics.getRegionMetrics().get(hri.getRegionName());
261270
if (regionLoad == null) {
262271
LOG.debug("{} was not found in RegionsLoad", hri.getRegionNameAsString());
263272
return -1;

0 commit comments

Comments
 (0)