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 f714260..b50252a 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 @@ -271,6 +271,9 @@ public class ProcedureExecutor { private final ProcedureStore store; private final Configuration conf; + private static final String CHECK_OWNER_SET = "hbase.procedure.check.owner.set"; + private final boolean checkOwnerSet; + private Thread[] threads; public ProcedureExecutor(final Configuration conf, final TEnvironment environment, @@ -284,6 +287,7 @@ public class ProcedureExecutor { this.runnables = runqueue; this.store = store; this.conf = conf; + this.checkOwnerSet = conf.getBoolean(CHECK_OWNER_SET, true); } private void load(final boolean abortOnCorruption) throws IOException { @@ -650,6 +654,9 @@ public class ProcedureExecutor { Preconditions.checkArgument(isRunning()); Preconditions.checkArgument(lastProcId.get() >= 0); Preconditions.checkArgument(!proc.hasParent()); + if (this.checkOwnerSet) { + Preconditions.checkArgument(proc.getOwner() != null); + } // 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 + +