You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2016/08/31 19:56:02 UTC

hbase git commit: HBASE-16532 Procedure-V2: Enforce procedure ownership at submission

Repository: hbase
Updated Branches:
  refs/heads/master 605af9513 -> 5376106d0


HBASE-16532 Procedure-V2: Enforce procedure ownership at submission


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5376106d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5376106d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5376106d

Branch: refs/heads/master
Commit: 5376106d05cd5d5a49a4fd65d90de442777883f9
Parents: 605af95
Author: tedyu <yu...@gmail.com>
Authored: Wed Aug 31 12:55:54 2016 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Wed Aug 31 12:55:54 2016 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/procedure2/ProcedureExecutor.java   | 7 +++++++
 hbase-procedure/src/test/resources/hbase-site.xml           | 9 ++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/5376106d/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
index ba7ba6f..5042329 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
@@ -246,6 +246,9 @@ public class ProcedureExecutor<TEnvironment> {
   private final ProcedureStore store;
   private final Configuration conf;
 
+  private static final String CHECK_OWNER_SET_CONF_KEY = "hbase.procedure.check.owner.set";
+  private final boolean checkOwnerSet;
+
   private Thread[] threads;
 
   public ProcedureExecutor(final Configuration conf, final TEnvironment environment,
@@ -259,6 +262,7 @@ public class ProcedureExecutor<TEnvironment> {
     this.runnables = runqueue;
     this.store = store;
     this.conf = conf;
+    this.checkOwnerSet = conf.getBoolean(CHECK_OWNER_SET_CONF_KEY, true);
   }
 
   private void load(final boolean abortOnCorruption) throws IOException {
@@ -640,6 +644,9 @@ public class ProcedureExecutor<TEnvironment> {
     Preconditions.checkArgument(isRunning());
     Preconditions.checkArgument(lastProcId.get() >= 0);
     Preconditions.checkArgument(!proc.hasParent());
+    if (this.checkOwnerSet) {
+      Preconditions.checkArgument(proc.hasOwner());
+    }
 
     // Initialize the Procedure ID
     long currentProcId = nextProcId();

http://git-wip-us.apache.org/repos/asf/hbase/blob/5376106d/hbase-procedure/src/test/resources/hbase-site.xml
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/test/resources/hbase-site.xml b/hbase-procedure/src/test/resources/hbase-site.xml
index 063dafb..d350127 100644
--- a/hbase-procedure/src/test/resources/hbase-site.xml
+++ b/hbase-procedure/src/test/resources/hbase-site.xml
@@ -21,8 +21,15 @@
  */
 -->
 <configuration>
-    <property>
+  <property>
     <name>hbase.procedure.store.wal.use.hsync</name>
     <value>false</value>
   </property>
+  <property>
+    <name>hbase.procedure.check.owner.set</name>
+    <value>false</value>
+    <description>Whether ProcedureExecutor should enforce that each
+    procedure to have an owner
+    </description>
+  </property>
 </configuration>