Apache9 commented on a change in pull request #241: HBASE-22432 HRegionServer
rssStub handling is incorrect and inconsistent
URL: https://github.com/apache/hbase/pull/241#discussion_r284510821
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
##########
@@ -3864,21 +3848,36 @@ public void remoteProcedureComplete(long procId,
Throwable error) {
}
void reportProcedureDone(ReportProcedureDoneRequest request) throws
IOException {
- RegionServerStatusService.BlockingInterface rss = rssStub;
- for (;;) {
+ RegionServerStatusService.BlockingInterface rss = ensureRssStub();
+ try {
+ rss.reportProcedureDone(null, request);
+ } catch (ServiceException se) {
+ resetRssStubOnServiceException(rss);
+ throw ProtobufUtil.getRemoteException(se);
+ }
+ }
+
+ private RegionServerStatusService.BlockingInterface ensureRssStub() {
+ return ensureRssStub(false, Integer.MAX_VALUE);
+ }
+
+ private RegionServerStatusService.BlockingInterface ensureRssStub(
Review comment:
In general I think checkClusterConn should always be true. The old
implementation for reportProcedureDone seems incorrect, as we can not quit if
the rs is shutting down. Maybe we should throw an IOException when the
clusterConnection is closed in reportProcedureDone.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services