Repository: hbase Updated Branches: refs/heads/branch-1 64135da82 -> d91edc2ac
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/d91edc2a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d91edc2a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d91edc2a Branch: refs/heads/branch-1 Commit: d91edc2ac46b1a151a0ca967f7e12ad6e89a5e15 Parents: 64135da Author: Stephen Yuan Jiang <syuanjiang...@gmail.com> Authored: Wed Aug 31 09:25:51 2016 -0700 Committer: Stephen Yuan Jiang <syuanjiang...@gmail.com> Committed: Wed Aug 31 09:51:52 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/d91edc2a/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 4ee349a..5eb569e 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; @@ -632,8 +634,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); @@ -676,8 +679,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/d91edc2a/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/d91edc2a/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/d91edc2a/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/d91edc2a/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.