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(*)"/>