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

Reply via email to