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;