You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2020/04/13 20:48:58 UTC

[hbase] branch branch-2 updated: HBASE-24132 Upgrade to Apache ZooKeeper 3.5.7 (#1453)

This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 2f4ae52  HBASE-24132 Upgrade to Apache ZooKeeper 3.5.7 (#1453)
2f4ae52 is described below

commit 2f4ae522c308b639bb3a448329bb1e351f7f4749
Author: Jianfei Jiang <fr...@gmail.com>
AuthorDate: Tue Apr 14 04:46:37 2020 +0800

    HBASE-24132 Upgrade to Apache ZooKeeper 3.5.7 (#1453)
    
    * HBASE-24132 Upgrade to Apache ZooKeeper 3.5.7
    
    * HBASE-24132 Upgrade to Apache ZooKeeper 3.5.7
    
    Co-authored-by: 姜建飞 10222269 <ji...@zte.com.cn>
    
    Signed-off-by: Mate Szalay-Beko <sz...@gmail.com>
    Signed-off-by: Norbert Kalmar <nk...@cloudera.com>
    Signed-off-by: stack <st...@apache.org>
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../src/main/resources/supplemental-models.xml            | 15 +++++++++++++++
 .../hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon       |  4 ++--
 .../hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon     |  4 ++--
 .../hbase/master/assignment/TestRegionMoveAndAbandon.java |  3 +++
 .../org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java    |  4 ++--
 .../hadoop/hbase/zookeeper/MiniZooKeeperCluster.java      |  9 +++++----
 .../org/apache/hadoop/hbase/zookeeper/ZKMainServer.java   |  6 +++---
 .../java/org/apache/hadoop/hbase/zookeeper/ZKWatcher.java |  4 ++++
 pom.xml                                                   |  5 ++---
 9 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/hbase-resource-bundle/src/main/resources/supplemental-models.xml b/hbase-resource-bundle/src/main/resources/supplemental-models.xml
index 2813219..d755854 100644
--- a/hbase-resource-bundle/src/main/resources/supplemental-models.xml
+++ b/hbase-resource-bundle/src/main/resources/supplemental-models.xml
@@ -3196,4 +3196,19 @@ Copyright (c) 2007-2017 The JRuby project
       </licenses>
     </project>
   </supplement>
+  <supplement>
+    <project>
+      <groupId>jline</groupId>
+      <artifactId>jline</artifactId>
+      <name>JLine</name>
+      <version>2.11</version>
+      <licenses>
+        <license>
+          <name>BSD License</name>
+          <url>http://www.opensource.org/licenses/bsd-license.php</url>
+          <distribution>repo</distribution>
+        </license>
+      </licenses>
+    </project>
+  </supplement>
 </supplementalDataModels>
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
index 2921300..d7c52ec 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
@@ -328,8 +328,8 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
                 </tr>
                 <tr>
                     <td>ZooKeeper Client Version</td>
-                    <td><% org.apache.zookeeper.Version.getVersion() %>, revision=<% org.apache.zookeeper.Version.getRevision() %></td>
-                    <td>ZooKeeper client version and revision</td>
+                    <td><% org.apache.zookeeper.Version.getVersion() %>, revision=<% org.apache.zookeeper.Version.getRevisionHash() %></td>
+                    <td>ZooKeeper client version and revision hash</td>
                 </tr>
                 <tr>
                     <td>ZooKeeper Client Compiled</td>
diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
index f07b8e7..b21a9c3 100644
--- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
+++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
@@ -197,8 +197,8 @@ org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;
         </tr>
         <tr>
             <td>ZooKeeper Client Version</td>
-            <td><% org.apache.zookeeper.Version.getVersion() %>, revision=<% org.apache.zookeeper.Version.getRevision() %></td>
-            <td>ZooKeeper client version and revision</td>
+            <td><% org.apache.zookeeper.Version.getVersion() %>, revision=<% org.apache.zookeeper.Version.getRevisionHash() %></td>
+            <td>ZooKeeper client version and revision hash</td>
         </tr>
         <tr>
             <td>ZooKeeper Client Compiled</td>
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java
index b237f9f..ce5727d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java
@@ -112,6 +112,9 @@ public class TestRegionMoveAndAbandon {
     cluster.killRegionServer(rs2.getServerName());
     UTIL.waitFor(30_000, () -> rs2.isStopped() && !rs2.isAlive());
     UTIL.waitFor(30_000, () -> rs1.isStopped() && !rs1.isAlive());
+    // make sure none of regionserver threads is alive.
+    UTIL.waitFor(30_000, () ->
+      UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().isEmpty());
     // Start up everything again
     LOG.info("Starting cluster");
     UTIL.getMiniHBaseCluster().startMaster();
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
index 0193515..193b7c8 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
@@ -23,7 +23,6 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
-import java.net.UnknownHostException;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Enumeration;
@@ -42,6 +41,7 @@ import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.yetus.audience.InterfaceStability;
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
+import org.apache.zookeeper.server.admin.AdminServer;
 import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
 import org.apache.zookeeper.server.quorum.QuorumPeerMain;
 
@@ -83,7 +83,7 @@ public final class HQuorumPeer {
   }
 
   private static void runZKServer(QuorumPeerConfig zkConfig)
-          throws UnknownHostException, IOException {
+          throws IOException, AdminServer.AdminServerException {
     if (zkConfig.isDistributed()) {
       QuorumPeerMain qp = new QuorumPeerMain();
       qp.runFromConfig(zkConfig);
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
index 7f5d8a0..bdf7bb5 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.net.Address;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.zookeeper.common.X509Exception;
 import org.apache.zookeeper.server.NIOServerCnxnFactory;
 import org.apache.zookeeper.server.ZooKeeperServer;
 import org.apache.zookeeper.server.persistence.FileTxnLog;
@@ -419,8 +420,8 @@ public class MiniZooKeeperCluster {
     long start = System.currentTimeMillis();
     while (true) {
       try {
-        send4LetterWord(HOST, port, "stat", (int)timeout);
-      } catch (IOException e) {
+        send4LetterWord(HOST, port, "stat", false, (int)timeout);
+      } catch (IOException | X509Exception.SSLContextException e) {
         return true;
       }
 
@@ -442,7 +443,7 @@ public class MiniZooKeeperCluster {
     long start = System.currentTimeMillis();
     while (true) {
       try {
-        String result = send4LetterWord(HOST, port, "stat", (int)timeout);
+        String result = send4LetterWord(HOST, port, "stat", false, (int)timeout);
         if (result.startsWith("Zookeeper version:") && !result.contains("READ-ONLY")) {
           return true;
         } else {
@@ -451,7 +452,7 @@ public class MiniZooKeeperCluster {
       } catch (ConnectException e) {
         // ignore as this is expected, do not log stacktrace
         LOG.info("{}:{} not up: {}", HOST, port, e.toString());
-      } catch (IOException e) {
+      } catch (IOException | X509Exception.SSLContextException e) {
         // ignore as this is expected
         LOG.info("{}:{} not up", HOST, port, e);
       }
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKMainServer.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKMainServer.java
index b2478ce..d20b0eb 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKMainServer.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKMainServer.java
@@ -24,8 +24,8 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseInterfaceAudience;
 import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.ZooKeeperMain;
+import org.apache.zookeeper.cli.CliException;
 
 
 /**
@@ -57,11 +57,11 @@ public class ZKMainServer {
 
     /**
      * Run the command-line args passed.  Calls System.exit when done.
-     * @throws KeeperException if an unexpected ZooKeeper exception happens
      * @throws IOException in case of a network failure
      * @throws InterruptedException if the ZooKeeper client closes
+     * @throws CliException if the ZooKeeper exception happens in cli command
      */
-    void runCmdLine() throws KeeperException, IOException, InterruptedException {
+    void runCmdLine() throws IOException, InterruptedException, CliException {
       processCmd(this.cl);
       System.exit(0);
     }
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKWatcher.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKWatcher.java
index a39c413..9774a51 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKWatcher.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKWatcher.java
@@ -560,6 +560,10 @@ public class ZKWatcher implements Watcher, Abortable, Closeable {
         LOG.debug(prefix("Received Disconnected from ZooKeeper, ignoring"));
         break;
 
+      case Closed:
+        LOG.debug(prefix("ZooKeeper client closed, ignoring"));
+        break;
+
       case Expired:
         String msg = prefix(this.identifier + " received expired from " +
           "ZooKeeper, aborting");
diff --git a/pom.xml b/pom.xml
index 080cf04..62c07a4 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1351,9 +1351,8 @@
     <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
     <thrift.path>thrift</thrift.path>
     <thrift.version>0.12.0</thrift.version>
-    <zookeeper.version>3.4.14</zookeeper.version>
-    <!-- What ZooKeeper 3.4.x depends on and nothing more -->
-    <jline.version>0.9.94</jline.version>
+    <zookeeper.version>3.5.7</zookeeper.version>
+    <jline.version>2.11</jline.version>
     <slf4j.version>1.7.30</slf4j.version>
     <clover.version>4.0.3</clover.version>
     <jamon-runtime.version>2.4.1</jamon-runtime.version>