You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ec...@apache.org on 2014/01/13 22:51:07 UTC
svn commit: r1557864 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
Author: eclark
Date: Mon Jan 13 21:51:07 2014
New Revision: 1557864
URL: http://svn.apache.org/r1557864
Log:
HBASE-10315 Canary shouldn't exit with 3 if there is no master running.
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java?rev=1557864&r1=1557863&r2=1557864&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java Mon Jan 13 21:51:07 2014
@@ -243,14 +243,22 @@ public final class Canary implements Too
// exit if any error occurs
if (this.failOnError && monitor.hasError()) {
monitorThread.interrupt();
- System.exit(monitor.errorCode);
+ if (monitor.initialized) {
+ System.exit(monitor.errorCode);
+ } else {
+ System.exit(INIT_ERROR_EXIT_CODE);
+ }
}
currentTimeLength = System.currentTimeMillis() - startTime;
if (currentTimeLength > this.timeout) {
LOG.error("The monitor is running too long (" + currentTimeLength
+ ") after timeout limit:" + this.timeout
+ " will be killed itself !!");
- monitor.errorCode = TIMEOUT_ERROR_EXIT_CODE;
+ if (monitor.initialized) {
+ System.exit(TIMEOUT_ERROR_EXIT_CODE);
+ } else {
+ System.exit(INIT_ERROR_EXIT_CODE);
+ }
break;
}
}
@@ -320,6 +328,7 @@ public final class Canary implements Too
protected HBaseAdmin admin;
protected String[] targets;
protected boolean useRegExp;
+ protected boolean initialized = false;
protected boolean done = false;
protected int errorCode = 0;
@@ -376,6 +385,7 @@ public final class Canary implements Too
try {
if (this.targets != null && this.targets.length > 0) {
String[] tables = generateMonitorTables(this.targets);
+ this.initialized = true;
for (String table : tables) {
Canary.sniff(admin, sink, table);
}
@@ -556,6 +566,7 @@ public final class Canary implements Too
public void run() {
if (this.initAdmin() && this.checkNoTableNames()) {
Map<String, List<HRegionInfo>> rsAndRMap = this.filterRegionServerByName();
+ this.initialized = true;
this.monitorRegionServers(rsAndRMap);
}
this.done = true;