Repository: hbase
Updated Branches:
refs/heads/branch-1.3 3c5d01c3e -> 800505e7c
HBASE-16528 Procedure-V2: ServerCrashProcedure misses owner information
(Stephen Yuan Jiang)
Conflicts:
hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/800505e7
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/800505e7
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/800505e7
Branch: refs/heads/branch-1.3
Commit: 800505e7c03a4bc36a512a9e8c71ddf0d2bd23b5
Parents: 3c5d01c
Author: Stephen Yuan Jiang <[email protected]>
Authored: Wed Aug 31 09:25:51 2016 -0700
Committer: Stephen Yuan Jiang <[email protected]>
Committed: Wed Aug 31 09:54:51 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/master/ServerManager.java | 12 ++++++++----
.../hbase/master/procedure/ServerCrashProcedure.java | 9 ++++++---
.../org/apache/hadoop/hbase/master/TestDeadServer.java | 6 ++++--
.../master/procedure/TestMasterProcedureEvents.java | 2 +-
.../master/procedure/TestServerCrashProcedure.java | 3 ++-
5 files changed, 21 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/800505e7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
index d30157d..fb98300 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
@@ -54,8 +54,10 @@ import
org.apache.hadoop.hbase.client.RetriesExhaustedException;
import org.apache.hadoop.hbase.ipc.PayloadCarryingRpcController;
import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;
+import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;
import org.apache.hadoop.hbase.monitoring.MonitoredTask;
+import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.RequestConverter;
import org.apache.hadoop.hbase.protobuf.ResponseConverter;
@@ -626,8 +628,9 @@ public class ServerManager {
boolean carryingMeta =
services.getAssignmentManager().isCarryingMeta(serverName) ==
AssignmentManager.ServerHostRegion.HOSTING_REGION;
- this.services.getMasterProcedureExecutor().
- submitProcedure(new ServerCrashProcedure(serverName, true,
carryingMeta));
+ ProcedureExecutor<MasterProcedureEnv> procExec =
this.services.getMasterProcedureExecutor();
+ procExec.submitProcedure(new ServerCrashProcedure(
+ procExec.getEnvironment(), serverName, true, carryingMeta));
LOG.debug("Added=" + serverName +
" to dead servers, submitted shutdown handler to be executed meta=" +
carryingMeta);
@@ -670,8 +673,9 @@ public class ServerManager {
}
this.deadservers.add(serverName);
- this.services.getMasterProcedureExecutor().
- submitProcedure(new ServerCrashProcedure(serverName, shouldSplitWal,
false));
+ ProcedureExecutor<MasterProcedureEnv> procExec =
this.services.getMasterProcedureExecutor();
+ procExec.submitProcedure(new ServerCrashProcedure(
+ procExec.getEnvironment(), serverName, shouldSplitWal, false));
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/800505e7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
index 90addb2..bfe3cc6 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
@@ -146,12 +146,15 @@ implements ServerProcedureInterface {
* @param shouldSplitWal True if we should split WALs as part of crashed
server processing.
* @param carryingMeta True if carrying hbase:meta table region.
*/
- public ServerCrashProcedure(final ServerName serverName,
- final boolean shouldSplitWal, final boolean carryingMeta) {
+ public ServerCrashProcedure(
+ final MasterProcedureEnv env,
+ final ServerName serverName,
+ final boolean shouldSplitWal,
+ final boolean carryingMeta) {
this.serverName = serverName;
this.shouldSplitWal = shouldSplitWal;
this.carryingMeta = carryingMeta;
- // Currently not used.
+ this.setOwner(env.getRequestUser().getShortName());
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/800505e7/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java
index 226d44d..ee8e173 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.master;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;
import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility;
@@ -98,8 +99,9 @@ public class TestDeadServer {
@Test(timeout = 15000)
public void testCrashProcedureReplay() {
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
- ProcedureExecutor pExecutor = master.getMasterProcedureExecutor();
- ServerCrashProcedure proc = new ServerCrashProcedure(hostname123, false,
false);
+ final ProcedureExecutor<MasterProcedureEnv> pExecutor =
master.getMasterProcedureExecutor();
+ ServerCrashProcedure proc = new ServerCrashProcedure(
+ pExecutor.getEnvironment(), hostname123, false, false);
ProcedureTestingUtility.submitAndWait(pExecutor, proc);
http://git-wip-us.apache.org/repos/asf/hbase/blob/800505e7/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java
index c1aa7c0..adf3e5c 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestMasterProcedureEvents.java
@@ -151,7 +151,7 @@ public class TestMasterProcedureEvents {
master.getServerManager().moveFromOnelineToDeadServers(hrs.getServerName());
long procId = procExec.submitProcedure(
- new ServerCrashProcedure(hrs.getServerName(), true, carryingMeta));
+ new ServerCrashProcedure(procExec.getEnvironment(), hrs.getServerName(),
true, carryingMeta));
for (int i = 0; i < 10; ++i) {
Thread.sleep(100);
http://git-wip-us.apache.org/repos/asf/hbase/blob/800505e7/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java
index cafb0ed..3fc2889 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestServerCrashProcedure.java
@@ -120,7 +120,8 @@ public class TestServerCrashProcedure {
ProcedureTestingUtility.waitNoProcedureRunning(procExec);
ProcedureTestingUtility.setKillAndToggleBeforeStoreUpdate(procExec,
true);
long procId =
- procExec.submitProcedure(new ServerCrashProcedure(hrs.getServerName(),
true, carryingMeta));
+ procExec.submitProcedure(new ServerCrashProcedure(
+ procExec.getEnvironment(), hrs.getServerName(), true, carryingMeta));
// Now run through the procedure twice crashing the executor on each
step...
MasterProcedureTestingUtility.testRecoveryAndDoubleExecution(procExec,
procId);
// Assert all data came back.