Skip to content

Commit ba15d67

Browse files
HBASE-28652 Backport HBASE-21785 master reports open regions as RITs and also messes up rit age metric (#5979)
Signed-off-by: Duo Zhang <zhangduo@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org> Co-authored-by: Sergey Shelukhin <sershe@apache.org>
1 parent ae477ac commit ba15d67

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ public void setRITCountOverThreshold(final int ritCount) {
117117
}
118118

119119
@Override
120-
public void setRITOldestAge(final long ritCount) {
121-
ritOldestAgeGauge.set(ritCount);
120+
public void setRITOldestAge(final long ritOldestAge) {
121+
ritOldestAgeGauge.set(ritOldestAge);
122122
}
123123

124124
@Override

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1666,7 +1666,13 @@ protected void update(final AssignmentManager am) {
16661666
private void update(final Collection<RegionState> regions, final long currentTime) {
16671667
for (RegionState state : regions) {
16681668
totalRITs++;
1669-
final long ritTime = currentTime - state.getStamp();
1669+
final long ritStartedMs = state.getStamp();
1670+
if (ritStartedMs == 0) {
1671+
// Don't output bogus values to metrics if they accidentally make it here.
1672+
LOG.warn("The RIT {} has no start time", state.getRegion());
1673+
continue;
1674+
}
1675+
final long ritTime = currentTime - ritStartedMs;
16701676
if (ritTime > ritThreshold) {
16711677
if (ritsOverThreshold == null) {
16721678
ritsOverThreshold = new HashMap<String, RegionState>();

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,11 @@ public boolean isSplit() {
178178

179179
public long getLastUpdate() {
180180
TransitRegionStateProcedure proc = this.procedure;
181-
return proc != null ? proc.getLastUpdate() : lastUpdate;
181+
if (proc != null) {
182+
long lastUpdate = proc.getLastUpdate();
183+
return lastUpdate != 0 ? lastUpdate : proc.getSubmittedTime();
184+
}
185+
return lastUpdate;
182186
}
183187

184188
public void setLastHost(final ServerName serverName) {

0 commit comments

Comments
 (0)