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]