This is an automated email from the ASF dual-hosted git repository.
sershe pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 22fca94 HBASE-22150 rssStub in HRegionServer is not thread safe and
should not directly be used
22fca94 is described below
commit 22fca940bef53a4e37b7ff003ee35e25051b0a9e
Author: Bahram Chehrazy <[email protected]>
AuthorDate: Wed Apr 17 11:28:00 2019 -0700
HBASE-22150 rssStub in HRegionServer is not thread safe and should not
directly be used
Signed-off-by: Sergey Shelukhin <[email protected]>
---
.../org/apache/hadoop/hbase/regionserver/HRegionServer.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
index e5938b7..89b026e 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
@@ -2402,12 +2402,13 @@ public class HRegionServer extends HasThread implements
msg += "\nCause:\n" + Throwables.getStackTraceAsString(cause);
}
// Report to the master but only if we have already registered with the
master.
- if (rssStub != null && this.serverName != null) {
+ RegionServerStatusService.BlockingInterface rss = rssStub;
+ if (rss != null && this.serverName != null) {
ReportRSFatalErrorRequest.Builder builder =
ReportRSFatalErrorRequest.newBuilder();
builder.setServer(ProtobufUtil.toServerName(this.serverName));
builder.setErrorMessage(msg);
- rssStub.reportRSFatalError(null, builder.build());
+ rss.reportRSFatalError(null, builder.build());
}
} catch (Throwable t) {
LOG.warn("Unable to report fatal error to master", t);
@@ -2615,7 +2616,8 @@ public class HRegionServer extends HasThread implements
private RegionServerStartupResponse reportForDuty() throws IOException {
if (this.masterless) return
RegionServerStartupResponse.getDefaultInstance();
ServerName masterServerName = createRegionServerStatusStub(true);
- if (masterServerName == null) return null;
+ RegionServerStatusService.BlockingInterface rss = rssStub;
+ if (masterServerName == null || rss == null) return null;
RegionServerStartupResponse result = null;
try {
rpcServices.requestCount.reset();
@@ -2634,7 +2636,7 @@ public class HRegionServer extends HasThread implements
request.setPort(port);
request.setServerStartCode(this.startcode);
request.setServerCurrentTime(now);
- result = this.rssStub.regionServerStartup(null, request.build());
+ result = rss.regionServerStartup(null, request.build());
} catch (ServiceException se) {
IOException ioe = ProtobufUtil.getRemoteException(se);
if (ioe instanceof ClockOutOfSyncException) {