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 { 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 { 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 { 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(); 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 @@ */ --> - + hbase.procedure.store.wal.use.hsync false + + hbase.procedure.check.owner.set + false + Whether ProcedureExecutor should enforce that each + procedure to have an owner + + diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java index ae8d2fb..e24cec8 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java @@ -65,7 +65,6 @@ public class CreateTableProcedure // used for compatibility with old clients private final ProcedurePrepareLatch syncLatch; - private HTableDescriptor hTableDescriptor; private List newRegions; private User user;