This is an automated email from the ASF dual-hosted git repository.
stack pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-operator-tools.git
The following commit(s) were added to refs/heads/master by this push:
new a4315f3 HBASE-21335 Change the default wait time of HBCK2 tool
a4315f3 is described below
commit a4315f316364be75336b240e429c219954d0775f
Author: jingyuntian <[email protected]>
AuthorDate: Thu Oct 18 16:58:32 2018 +0800
HBASE-21335 Change the default wait time of HBCK2 tool
Signed-off-by: Michael Stack <[email protected]>
---
.../src/main/java/org/apache/hbase/HBCK2.java | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
b/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
index 64882aa..24717b8 100644
--- a/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
+++ b/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
@@ -80,6 +80,10 @@ public class HBCK2 extends Configured implements Tool {
private Configuration conf;
private static final String TWO_POINT_ONE = "2.1.0";
private static final String MININUM_VERSION = "2.0.3";
+ /**
+ * Wait 1ms on lock by default.
+ */
+ private static final long DEFAULT_LOCK_WAIT = 1;
/**
* Check for HBCK support.
@@ -168,7 +172,7 @@ public class HBCK2 extends Configured implements Tool {
options.addOption(override);
Option recursive = Option.builder("r").longOpt("recursive").build();
options.addOption(recursive);
- Option wait =
Option.builder("w").longOpt("waitTime").hasArg().type(Integer.class).build();
+ Option wait =
Option.builder("w").longOpt("lockWait").hasArg().type(Integer.class).build();
options.addOption(wait);
// Parse command-line.
CommandLineParser parser = new DefaultParser();
@@ -179,10 +183,9 @@ public class HBCK2 extends Configured implements Tool {
usage(options, e.getMessage());
return null;
}
- long waitTime = 0;
+ long lockWait = DEFAULT_LOCK_WAIT;
if (commandLine.hasOption(wait.getOpt())) {
- waitTime = Integer.valueOf(commandLine.getOptionValue(wait.getOpt()));
- waitTime *= 1000; // Because time is in seconds.
+ lockWait = Integer.valueOf(commandLine.getOptionValue(wait.getOpt()));
}
String[] pidStrs = commandLine.getArgs();
if (pidStrs == null || pidStrs.length <= 0) {
@@ -194,7 +197,7 @@ public class HBCK2 extends Configured implements Tool {
List<Long> pids = Arrays.stream(pidStrs).map(i ->
Long.valueOf(i)).collect(Collectors.toList());
try (ClusterConnection c = (ClusterConnection)
ConnectionFactory.createConnection(getConf())) {
try (Hbck hbck = c.getHbck()) {
- return hbck.bypassProcedure(pids, waitTime, overrideFlag,
recursiveFlag);
+ return hbck.bypassProcedure(pids, lockWait, overrideFlag,
recursiveFlag);
}
}
}
@@ -230,14 +233,15 @@ public class HBCK2 extends Configured implements Tool {
writer.println();
writer.println(" " + BYPASS + " [OPTIONS] <PID>...");
writer.println(" Options:");
- writer.println(" -o,--override interrupt if procedure is running");
+ writer.println(" -o,--override override if procedure is
running/stuck");
writer.println(" -r,--recursive bypass parent and its children. SLOW!
EXPENSIVE!");
- writer.println(" -w,--waitTime seconds to wait on lock before giving
up; default=0");
+ writer.println(" -w,--lockWait milliseconds to wait on lock before
giving up; default=1");
writer.println(" Pass one (or more) procedure 'pid's to skip to
procedure finish.");
writer.println(" Parent of bypassed procedure will also be skipped to
the finish.");
writer.println(" Entities will be left in an inconsistent state and will
require");
- writer.println(" manual fixup. Bypass fails if procedure has children.
Add 'recursive'");
- writer.println(" if all you have is a parent pid to finish parent and
children. This");
+ writer.println(" manual fixup. May need Master restart to clear locks
still held.");
+ writer.println(" Bypass fails if procedure has children. Add 'recursive'
if all");
+ writer.println(" you have is a parent pid to finish parent and children.
This");
writer.println(" is SLOW, and dangerous so use selectively. Does not
always work.");
writer.println();
writer.println(" " + UNASSIGNS + " <ENCODED_REGIONNAME>...");