mnpoonia commented on code in PR #6129:
URL: https://github.com/apache/hbase/pull/6129#discussion_r1697985285


##########
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java:
##########
@@ -3884,14 +3885,15 @@ private void 
executeOpenRegionProcedures(OpenRegionRequest request,
       }
       long procId = regionOpenInfo.getOpenProcId();
       if (server.submitRegionProcedure(procId)) {
-        server.getExecutorService().submit(
-          AssignRegionHandler.create(server, regionInfo, procId, tableDesc, 
masterSystemTime));
+        server.getExecutorService().submit(AssignRegionHandler.create(server, 
regionInfo, procId,
+          tableDesc, masterSystemTime, masterStartCode));

Review Comment:
   Same here. isn't master start time and start code same. I might be mistaken 
here.



##########
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:
##########
@@ -2567,6 +2573,17 @@ public ReportProcedureDoneResponse 
reportProcedureDone(RpcController controller,
     return ReportProcedureDoneResponse.getDefaultInstance();
   }
 
+  private void throwOnOldMasterStartCode(Stream<Long> masterStartCodeStream)
+    throws MasterNotRunningException {
+    long masterStartCodeFromProc = 
masterStartCodeStream.max(Long::compare).orElse(-1L);
+    // -1 is less than any possible MasterStartCode
+
+    if (masterStartCodeFromProc > server.getStartcode()) {

Review Comment:
   So if we throw exception here what would be the befit of it. Will client 
refresh the stub and go to currently active master?



##########
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java:
##########
@@ -416,13 +416,17 @@ public void dispatchOpenRequests(final MasterProcedureEnv 
env,
     public void dispatchCloseRequests(final MasterProcedureEnv env,
       final List<RegionCloseOperation> operations) {
       for (RegionCloseOperation op : operations) {
-        request.addCloseRegion(op.buildCloseRegionRequest(getServerName()));
+        request.addCloseRegion(op.buildCloseRegionRequest(getServerName(),
+          env.getMasterServices().getServerName().getStartCode()));
       }
     }
 
     @Override
     public void dispatchServerOperations(MasterProcedureEnv env, 
List<ServerOperation> operations) {
-      operations.stream().map(o -> 
o.buildRequest()).forEachOrdered(request::addProc);
+      operations.stream()
+        .map(o -> o
+          
.buildRequestWithMasterStartCode(env.getMasterServices().getServerName().getStartCode()))

Review Comment:
   As suggested lets not change the method here.



##########
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java:
##########
@@ -2254,7 +2255,7 @@ public void postOpenDeployTasks(final 
PostOpenDeployContext context) throws IOEx
     // Notify master
     if (
       !reportRegionStateTransition(new 
RegionStateTransitionContext(TransitionCode.OPENED,
-        openSeqNum, openProcId, masterSystemTime, r.getRegionInfo()))
+        openSeqNum, openProcId, masterSystemTime, r.getRegionInfo(), 
masterStartCode))

Review Comment:
   Is master systime different then master start code. Can't we use the same 
thing here?



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to