This is an automated email from the ASF dual-hosted git repository.
vjasani pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new ce59a2b HBASE-25004 : Log RegionTooBusyException details (#2371)
ce59a2b is described below
commit ce59a2ba30420bee22e692a1b5ba8abd00953f4d
Author: Viraj Jasani <[email protected]>
AuthorDate: Thu Sep 10 21:22:37 2020 +0530
HBASE-25004 : Log RegionTooBusyException details (#2371)
Signed-off-by: mnpoonia <[email protected]>
Signed-off-by: stack <[email protected]>
---
.../apache/hadoop/hbase/regionserver/HRegion.java | 31 ++++++++++++++--------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index bea3cf6..a091515 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -5000,12 +5000,17 @@ public class HRegion implements HeapSize,
PropagatingConfigurationObserver, Regi
requestFlush();
// Don't print current limit because it will vary too much. The message
is used as a key
// over in RetriesExhaustedWithDetailsException processing.
- throw new RegionTooBusyException("Over memstore limit=" +
-
org.apache.hadoop.hbase.procedure2.util.StringUtils.humanSize(this.blockingMemStoreSize)
+
- ", regionName=" +
- (this.getRegionInfo() == null? "unknown":
this.getRegionInfo().getEncodedName()) +
- ", server=" + (this.getRegionServerServices() == null? "unknown":
- this.getRegionServerServices().getServerName()));
+ final String regionName =
+ this.getRegionInfo() == null ? "unknown" :
this.getRegionInfo().getEncodedName();
+ final String serverName = this.getRegionServerServices() == null ?
+ "unknown" : (this.getRegionServerServices().getServerName() == null ?
"unknown" :
+ this.getRegionServerServices().getServerName().toString());
+ RegionTooBusyException rtbe = new RegionTooBusyException(
+ "Over memstore limit=" +
org.apache.hadoop.hbase.procedure2.util.StringUtils
+ .humanSize(this.blockingMemStoreSize) + ", regionName=" + regionName
+ ", server="
+ + serverName);
+ LOG.warn("Region is too busy due to exceeding memstore size limit.",
rtbe);
+ throw rtbe;
}
}
@@ -8846,11 +8851,15 @@ public class HRegion implements HeapSize,
PropagatingConfigurationObserver, Regi
if (!lock.tryLock(waitTime, TimeUnit.MILLISECONDS)) {
// Don't print millis. Message is used as a key over in
// RetriesExhaustedWithDetailsException processing.
- throw new RegionTooBusyException("Failed to obtain lock; regionName=" +
- (this.getRegionInfo() == null? "unknown":
- this.getRegionInfo().getRegionNameAsString()) +
- ", server=" + (this.getRegionServerServices() == null? "unknown":
- this.getRegionServerServices().getServerName()));
+ final String regionName =
+ this.getRegionInfo() == null ? "unknown" :
this.getRegionInfo().getRegionNameAsString();
+ final String serverName = this.getRegionServerServices() == null ?
+ "unknown" : (this.getRegionServerServices().getServerName() == null ?
+ "unknown" :
this.getRegionServerServices().getServerName().toString());
+ RegionTooBusyException rtbe = new RegionTooBusyException(
+ "Failed to obtain lock; regionName=" + regionName + ", server=" +
serverName);
+ LOG.warn("Region is too busy to allow lock acquisition.", rtbe);
+ throw rtbe;
}
} catch (InterruptedException ie) {
LOG.info("Interrupted while waiting for a lock in region {}", this);