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

nealsun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git


The following commit(s) were added to refs/heads/master by this push:
     new ea7076ec8 Upgrade to zookeeper 3.6.3 (#2219)
ea7076ec8 is described below

commit ea7076ec8edca5e7bc52c0565e18a7e611852992
Author: Molly Gao <[email protected]>
AuthorDate: Mon Sep 26 10:49:36 2022 -0700

    Upgrade to zookeeper 3.6.3 (#2219)
    
    Bump up zookeeper dependency version to 3.6.3
---
 helix-core/helix-core-1.0.5-SNAPSHOT.ivy           |  3 ++-
 helix-core/pom.xml                                 |  6 +++++
 .../helix/tools/commandtools/ZKLogFormatter.java   |  8 +++---
 zookeeper-api/pom.xml                              |  4 +--
 .../apache/helix/zookeeper/zkclient/ZkServer.java  |  2 +-
 .../zookeeper/impl/client/TestRawZkClient.java     | 29 ++++++++++++++--------
 zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy     |  2 +-
 7 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/helix-core/helix-core-1.0.5-SNAPSHOT.ivy 
b/helix-core/helix-core-1.0.5-SNAPSHOT.ivy
index 0a3ff82cd..c2bf7bb7a 100755
--- a/helix-core/helix-core-1.0.5-SNAPSHOT.ivy
+++ b/helix-core/helix-core-1.0.5-SNAPSHOT.ivy
@@ -52,7 +52,7 @@ under the License.
     <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
-    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.5.9" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
+    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.6.3" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-databind" rev="2.12.6.1" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="com.fasterxml.jackson.core" name="jackson-core" 
rev="2.12.6" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="commons-io" name="commons-io" rev="2.11.0" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
@@ -63,6 +63,7 @@ under the License.
     <dependency org="org.yaml" name="snakeyaml" rev="1.30" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
     <dependency org="commons-logging" name="commons-logging-api" rev="1.1" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
     <dependency org="io.dropwizard.metrics" name="metrics-core" rev="4.1.14" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
+    <dependency org="org.xerial.snappy" name="snappy-java" rev="1.1.7" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
        </dependencies>
 </ivy-module>
 
diff --git a/helix-core/pom.xml b/helix-core/pom.xml
index 886546bb6..df8ddd936 100755
--- a/helix-core/pom.xml
+++ b/helix-core/pom.xml
@@ -146,6 +146,12 @@
       <artifactId>jaxb-api</artifactId>
       <version>2.1</version>
     </dependency>
+    <dependency>
+      <groupId>org.xerial.snappy</groupId>
+      <artifactId>snappy-java</artifactId>
+      <version>1.1.7</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <resources>
diff --git 
a/helix-core/src/main/java/org/apache/helix/tools/commandtools/ZKLogFormatter.java
 
b/helix-core/src/main/java/org/apache/helix/tools/commandtools/ZKLogFormatter.java
index 3e06271e4..87a4abff5 100644
--- 
a/helix-core/src/main/java/org/apache/helix/tools/commandtools/ZKLogFormatter.java
+++ 
b/helix-core/src/main/java/org/apache/helix/tools/commandtools/ZKLogFormatter.java
@@ -44,6 +44,7 @@ import org.apache.zookeeper.ZooDefs.OpCode;
 import org.apache.zookeeper.data.Stat;
 import org.apache.zookeeper.server.DataNode;
 import org.apache.zookeeper.server.DataTree;
+import org.apache.zookeeper.server.TxnLogEntry;
 import org.apache.zookeeper.server.persistence.FileHeader;
 import org.apache.zookeeper.server.persistence.FileSnap;
 import org.apache.zookeeper.server.persistence.FileTxnLog;
@@ -248,13 +249,12 @@ public class ZKLogFormatter {
       if (crcValue != crc.getValue()) {
         throw new IOException("CRC doesn't match " + crcValue + " vs " + 
crc.getValue());
       }
-      TxnHeader hdr = new TxnHeader();
-      Record txn = SerializeUtils.deserializeTxn(bytes, hdr);
+      TxnLogEntry txnLogEntry =  SerializeUtils.deserializeTxn(bytes);
       if (bw != null) {
-        bw.write(formatTransaction(hdr, txn));
+        bw.write(formatTransaction(txnLogEntry.getHeader(), 
txnLogEntry.getTxn()));
         bw.newLine();
       } else {
-        System.out.println(formatTransaction(hdr, txn));
+        System.out.println(formatTransaction(txnLogEntry.getHeader(), 
txnLogEntry.getTxn()));
       }
 
       if (logStream.readByte("EOR") != 'B') {
diff --git a/zookeeper-api/pom.xml b/zookeeper-api/pom.xml
index 403748857..ed11416bf 100644
--- a/zookeeper-api/pom.xml
+++ b/zookeeper-api/pom.xml
@@ -32,7 +32,7 @@
   <properties>
     <osgi.import>
       org.slf4j*;version="[1.7,2)",
-      org.apache.zookeeper*;version="[3.5,9)",
+      org.apache.zookeeper*;version="[3.6,3)",
       *
     </osgi.import>
     
<osgi.export>org.apache.helix.zookeeper*;version="${project.version};-noimport:=true</osgi.export>
@@ -51,7 +51,7 @@
     <dependency>
       <groupId>org.apache.zookeeper</groupId>
       <artifactId>zookeeper</artifactId>
-      <version>3.5.9</version>
+      <version>3.6.3</version>
       <exclusions>
         <exclusion>
           <groupId>junit</groupId>
diff --git 
a/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java 
b/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
index 761750de3..cd215f3dd 100644
--- 
a/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
+++ 
b/zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkServer.java
@@ -168,7 +168,7 @@ public class ZkServer {
             _nioFactory = null;
         }
         if (_zk != null) {
-            _zk.shutdown();
+            _zk.shutdown(true);
             _zk = null;
         }
         LOG.info("Shutting down ZkServer...done");
diff --git 
a/zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
 
b/zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
index 9e8a75a73..9c33a6fef 100644
--- 
a/zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
+++ 
b/zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
@@ -1063,23 +1063,29 @@ public class TestRawZkClient extends ZkTestBase {
    * Tests getChildren() when there are an excessive number of children and 
connection loss happens,
    * the operation should terminate and exit retry loop.
    */
-  @Test(timeOut = 30 * 1000L)
+  @Test
   public void testGetChildrenOnLargeNumChildren() throws Exception {
     final String methodName = TestHelper.getTestMethodName();
     System.out.println("Start test: " + methodName);
     // Create 110K children to make packet length of children exceed 4 MB
     // and cause connection loss for getChildren() operation
     String path = "/" + methodName;
+    int numOps = 110;
+    int numOpInOps = 1000;
+    // All the paths that are going to be created as children nodes, plus one 
parent node
+    // Record paths so can be deleted at the end of the test
+    String[] nodePaths = new String[numOps * numOpInOps + 1];
+    nodePaths[numOps * numOpInOps] = path;
 
     _zkClient.createPersistent(path);
 
-    for (int i = 0; i < 110; i++) {
-      List<Op> ops = new ArrayList<>(1000);
-      for (int j = 0; j < 1000; j++) {
+    for (int i = 0; i < numOps; i++) {
+      List<Op> ops = new ArrayList<>(numOpInOps);
+      for (int j = 0; j < numOpInOps; j++) {
         String childPath = path + "/" + UUID.randomUUID().toString();
-        // Create ephemeral nodes so closing zkClient deletes them for cleanup
+        nodePaths[numOpInOps * i + j] = childPath;
         ops.add(
-            Op.create(childPath, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, 
CreateMode.EPHEMERAL));
+            Op.create(childPath, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, 
CreateMode.PERSISTENT));
       }
       // Reduce total creation time by batch creating znodes
       _zkClient.multi(ops);
@@ -1098,11 +1104,14 @@ public class TestRawZkClient extends ZkTestBase {
       _zkClient = new ZkClient(ZkTestBase.ZK_ADDR);
 
       Assert.assertTrue(TestHelper.verify(() -> {
-        try {
-          return _zkClient.delete(path);
-        } catch (ZkException e) {
-          return false;
+        for (String toDelete: nodePaths) {
+          try {
+            _zkClient.delete(toDelete);
+          } catch (ZkException e) {
+            return false;
+          }
         }
+        return true;
       }, TestHelper.WAIT_DURATION));
     }
     System.out.println("End test: " + methodName);
diff --git a/zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy 
b/zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy
index 065cdda8d..5adb63657 100644
--- a/zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy
+++ b/zookeeper-api/zookeeper-api-1.0.5-SNAPSHOT.ivy
@@ -43,7 +43,7 @@ under the License.
     <dependency org="org.apache.logging.log4j" name="log4j-slf4j-impl" 
rev="2.17.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)">
         <artifact name="log4j-slf4j-impl" ext="jar"/>
     </dependency>
-    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.5.9" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
+    <dependency org="org.apache.zookeeper" name="zookeeper" rev="3.6.3" 
conf="compile->compile(default);runtime->runtime(default);default->default"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-databind" rev="2.12.6.1" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
                <dependency org="com.fasterxml.jackson.core" 
name="jackson-core" rev="2.12.6" force="true" 
conf="compile->compile(*),master(*);runtime->runtime(*)"/>
                <dependency org="commons-cli" name="commons-cli" rev="1.2" 
force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>

Reply via email to