Release Notes - ZooKeeper - Version 3.8.4
Sub-task
- ZOOKEEPER-910 - Use SelectionKey.isXYZ() methods instead of complicated binary logic
- ZOOKEEPER-4728 - Zookeepr cannot bind to itself forever if DNS is not ready when startup
Bug
Improvement
Release Notes - ZooKeeper - Version 3.8.3
Bug
Improvement
- ZOOKEEPER-4753 - Explicit handling of DIGEST-MD5 vs GSSAPI in quorum auth
Task
Release Notes - ZooKeeper - Version 3.8.2
Bug
- ZOOKEEPER-4674 - C client tests don't pass on CI
- ZOOKEEPER-4647 - Tests don't pass on JDK20 because we try to mock InetAddress
- ZOOKEEPER-4026 - CREATE2 requests embeded in a MULTI request only get a regular CREATE response
- ZOOKEEPER-4393 - Problem to connect to zookeeper in FIPS mode
Improvement
- ZOOKEEPER-3860 - Avoid reverse DNS lookup for hostname verification when hostnames are provided in the connection url
Task
Release Notes - ZooKeeper - Version 3.8.1
Bug
- ZOOKEEPER-3652 - Improper synchronization in ClientCnxn
- ZOOKEEPER-4308 - Flaky test: EagerACLFilterTest.testSetDataFail
- ZOOKEEPER-4460 - QuorumPeer overrides Thread.getId with different semantics
- ZOOKEEPER-4473 - zooInspector create root node fail with path validate
- ZOOKEEPER-4477 - Single Kerberos ticket renewal failure can prevent all future renewals since Java 9
- ZOOKEEPER-4504 - ZKUtil#deleteRecursive causing deadlock in HDFS HA functionality
- ZOOKEEPER-4505 - CVE-2020-36518 - Upgrade jackson databind to 2.13.2.1
- ZOOKEEPER-4511 - Flaky test: FileTxnSnapLogMetricsTest.testFileTxnSnapLogMetrics
- ZOOKEEPER-4514 - ClientCnxnSocketNetty throwing NPE
- ZOOKEEPER-4515 - ZK Cli quit command always logs error
- ZOOKEEPER-4537 - Race between SyncThread and CommitProcessor thread
- ZOOKEEPER-4654 - Fix C client test compilation error in Util.cc.
Improvement
Task
- ZOOKEEPER-4479 - Tests: C client test TestOperations.cc testTimeoutCausedByWatches1 is very flaky on CI
- ZOOKEEPER-4510 - dependency-check:check failing - reload4j-1.2.19.jar: CVE-2020-9493, CVE-2022-23307
- ZOOKEEPER-4627 - High CVE-2022-2048 in jetty-*-9.4.46.v20220331.jar fixed in 9.4.47
- ZOOKEEPER-4632 - Fix NPE from ConnectionMetricsTest.testRevalidateCount
- ZOOKEEPER-4641 - GH CI fails with error: implicit declaration of function FIPS_mode
- ZOOKEEPER-4649 - Upgrade netty to 4.1.86 because of CVE-2022-41915
- ZOOKEEPER-4666 - Fix license files for Netty: some files are for 4.1.76 and some other files are for 4.1.86
Sub-task
Release Notes - ZooKeeper - Version 3.8.0
New Feature
Improvement
Bug
- ZOOKEEPER-3128 - Get CLI Command displays Authentication error for Authorization error
- ZOOKEEPER-3706 - ZooKeeper.close() would leak SendThread when the network is broken
- ZOOKEEPER-3781 - Zookeeper 3.5.7 not creating snapshot
- ZOOKEEPER-3877 - JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
- ZOOKEEPER-3887 - In SSL-only server zkServer.sh status command should use secureClientPortAddress instead of clientPortAddress
- ZOOKEEPER-3943 - Zookeeper Inspector throwing NullPointerExceptions and not displaying properly
- ZOOKEEPER-3987 - Build failures when running surefire tests concurrently due to bind address already in use
- ZOOKEEPER-3988 - org.apache.zookeeper.server.NettyServerCnxn.receiveMessage throws NullPointerException
- ZOOKEEPER-3992 - addWatch api should check the null watch
- ZOOKEEPER-4007 - A typo in the ZKUtil#validateFileInput method
- ZOOKEEPER-4050 - Zookeeper Inspector reports "List of default node viewers is empty" when not specifically run from the zookeeper-contrib/zookeeper-contrib-zooinspector directory
- ZOOKEEPER-4191 - Missing executable bits in source release tarball
- ZOOKEEPER-4194 - ZooInspector throws NullPointerExceptions to console when node data is null
- ZOOKEEPER-4201 - C client: SASL-related compilation issues on macOS Catalina
- ZOOKEEPER-4204 - Flaky test - RequestPathMetricsCollectorTest.testMultiThreadPerf
- ZOOKEEPER-4205 - Test fails when port 8080 is in use
- ZOOKEEPER-4207 - New CI pipeline checks out master in branch builds too
- ZOOKEEPER-4210 - Zookeeper c client: detect connection loss during opportunistic async send
- ZOOKEEPER-4219 - Quota checks break setData in multi transactions
- ZOOKEEPER-4220 - Potential redundant connection attempts during leader election
- ZOOKEEPER-4230 - Use dynamic temp folder instead of static temp folder in RestMain
- ZOOKEEPER-4232 - InvalidSnapshotTest corrupts its own test data
- ZOOKEEPER-4247 - NPE while processing message from restarted quorum member
- ZOOKEEPER-4265 - Download page broken links
- ZOOKEEPER-4266 - Correct ZooKeeper version in documentation header
- ZOOKEEPER-4267 - Fix check-style issues
- ZOOKEEPER-4269 - acceptedEpoch.tmp rename failure will cause server startup error
- ZOOKEEPER-4272 - Upgrade Netty library to > 4.1.60 due to security vulnerability CVE-2021-21295
- ZOOKEEPER-4275 - Slowness in sasl login or subject.doAs() causes zk client to falsely assume that the server did not respond, closes connection and goes to unnecessary retries
- ZOOKEEPER-4277 - dependency-check:check failing - jetty-server-9.4.38 CVE-2021-28165
- ZOOKEEPER-4278 - dependency-check:check failing - netty-transport-4.1.60.Final CVE-2021-21409
- ZOOKEEPER-4309 - QuorumCnxManager's ListenerHandler thread leak
- ZOOKEEPER-4311 - Fsync errors are ignored in AtomicFileWritingIdiom
- ZOOKEEPER-4325 - IllegalArgumentException when use ZkUtil::listSubTreeBFS to list "/"
- ZOOKEEPER-4337 - CVE-2021-34429 in jetty 9.4.38.v20210224 in zookeeper 3.7.0
- ZOOKEEPER-4342 - Robustify C client against errors during SASL negotiation
- ZOOKEEPER-4343 - OWASP Dependency-Check fails with CVE-2021-29425, commons-io-2.6
- ZOOKEEPER-4345 - Avoid NoSunchMethodException caused by shaded zookeeper jar
- ZOOKEEPER-4356 - Code blocks do not render correctly in ZK docs site
- ZOOKEEPER-4360 - Avoid NPE during metrics execution if the leader is not set on a FOLLOWER node
- ZOOKEEPER-4362 - ZKDatabase.txnCount logged non transactional requests
- ZOOKEEPER-4367 - Zookeeper#Login thread leak in case of Sasl AuthFailed.
- ZOOKEEPER-4372 - Zookeeper lock recipe doesn't parse negative sequence numbers correctly
- ZOOKEEPER-4377 - KeeperException.create has NullPointerException when low version client requests the high version server
- ZOOKEEPER-4406 - fix the znode type for Barrier implementation in the zookeeperTutorial.md
Test
Task
- ZOOKEEPER-3957 - Create Owasp check build on new Jenkins instance
- ZOOKEEPER-3970 - Enable ZooKeeperServerController to expire session
- ZOOKEEPER-3980 - Fix Jenkinsfiles with new tool names
- ZOOKEEPER-4233 - dependency-check:check failing - Jetty 9.4.35.v20201120 - CVE-2020-27223
- ZOOKEEPER-4315 - Fix NOTICE file in the source distribution
- ZOOKEEPER-4384 - Fix 'se[r]ver' typo in ClientCnxn class.
- ZOOKEEPER-4414 - Update Netty to 4.1.70.Final
- ZOOKEEPER-4429 - Update jackson-databind to 2.13.1
- ZOOKEEPER-4465 - zooinspector logback pattern config add escape for '(' and ')'
- ZOOKEEPER-4469 - Suppress OWASP false positives related to Netty TCNative
- ZOOKEEPER-4478 - Suppress OWASP false positives zookeeper-jute-3.8.0-SNAPSHOT.jar: CVE-2021-29425, CVE-2021-28164, CVE-2021-34429
Sub-task
- ZOOKEEPER-3774 - Close quorum socket asynchronously on the leader to avoid ping being blocked by long socket closing time
- ZOOKEEPER-4251 - Flaky test: org.apache.zookeeper.test.WatcherTest
- ZOOKEEPER-4257 - learner.asyncSending, learner.closeSocketAsync and leader.closeSocketAsync should be configurable in zoo.cfg
- ZOOKEEPER-4270 - Flaky test: QuorumPeerMainTest#testLeaderOutOfView
- ZOOKEEPER-4461 - Migrate zookeeper-contrib and -recipes projects.
Bug
- ZOOKEEPER-3128 - Get CLI Command displays Authentication error for Authorization error
- ZOOKEEPER-3706 - ZooKeeper.close() would leak SendThread when the network is broken
- ZOOKEEPER-3781 - Zookeeper 3.5.7 not creating snapshot
- ZOOKEEPER-3877 - JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
- ZOOKEEPER-3887 - In SSL-only server zkServer.sh status command should use secureClientPortAddress instead of clientPortAddress
- ZOOKEEPER-3943 - Zookeeper Inspector throwing NullPointerExceptions and not displaying properly
- ZOOKEEPER-3987 - Build failures when running surefire tests concurrently due to bind address already in use
- ZOOKEEPER-3988 - org.apache.zookeeper.server.NettyServerCnxn.receiveMessage throws NullPointerException
- ZOOKEEPER-3992 - addWatch api should check the null watch
- ZOOKEEPER-4007 - A typo in the ZKUtil#validateFileInput method
- ZOOKEEPER-4050 - Zookeeper Inspector reports "List of default node viewers is empty" when not specifically run from the zookeeper-contrib/zookeeper-contrib-zooinspector directory
- ZOOKEEPER-4191 - Missing executable bits in source release tarball
- ZOOKEEPER-4194 - ZooInspector throws NullPointerExceptions to console when node data is null
- ZOOKEEPER-4201 - C client: SASL-related compilation issues on macOS Catalina
- ZOOKEEPER-4204 - Flaky test - RequestPathMetricsCollectorTest.testMultiThreadPerf
- ZOOKEEPER-4205 - Test fails when port 8080 is in use
- ZOOKEEPER-4207 - New CI pipeline checks out master in branch builds too
- ZOOKEEPER-4210 - Zookeeper c client: detect connection loss during opportunistic async send
- ZOOKEEPER-4219 - Quota checks break setData in multi transactions
- ZOOKEEPER-4220 - Potential redundant connection attempts during leader election
- ZOOKEEPER-4230 - Use dynamic temp folder instead of static temp folder in RestMain
- ZOOKEEPER-4232 - InvalidSnapshotTest corrupts its own test data
- ZOOKEEPER-4247 - NPE while processing message from restarted quorum member
- ZOOKEEPER-4265 - Download page broken links
- ZOOKEEPER-4266 - Correct ZooKeeper version in documentation header
- ZOOKEEPER-4267 - Fix check-style issues
- ZOOKEEPER-4269 - acceptedEpoch.tmp rename failure will cause server startup error
- ZOOKEEPER-4272 - Upgrade Netty library to > 4.1.60 due to security vulnerability CVE-2021-21295
- ZOOKEEPER-4275 - Slowness in sasl login or subject.doAs() causes zk client to falsely assume that the server did not respond, closes connection and goes to unnecessary retries
- ZOOKEEPER-4277 - dependency-check:check failing - jetty-server-9.4.38 CVE-2021-28165
- ZOOKEEPER-4278 - dependency-check:check failing - netty-transport-4.1.60.Final CVE-2021-21409
- ZOOKEEPER-4309 - QuorumCnxManager's ListenerHandler thread leak
- ZOOKEEPER-4311 - Fsync errors are ignored in AtomicFileWritingIdiom
- ZOOKEEPER-4325 - IllegalArgumentException when use ZkUtil::listSubTreeBFS to list "/"
- ZOOKEEPER-4337 - CVE-2021-34429 in jetty 9.4.38.v20210224 in zookeeper 3.7.0
- ZOOKEEPER-4342 - Robustify C client against errors during SASL negotiation
- ZOOKEEPER-4343 - OWASP Dependency-Check fails with CVE-2021-29425, commons-io-2.6
- ZOOKEEPER-4345 - Avoid NoSunchMethodException caused by shaded zookeeper jar
- ZOOKEEPER-4356 - Code blocks do not render correctly in ZK docs site
- ZOOKEEPER-4360 - Avoid NPE during metrics execution if the leader is not set on a FOLLOWER node
- ZOOKEEPER-4362 - ZKDatabase.txnCount logged non transactional requests
- ZOOKEEPER-4367 - Zookeeper#Login thread leak in case of Sasl AuthFailed.
- ZOOKEEPER-4372 - Zookeeper lock recipe doesn't parse negative sequence numbers correctly
- ZOOKEEPER-4377 - KeeperException.create has NullPointerException when low version client requests the high version server
- ZOOKEEPER-4406 - fix the znode type for Barrier implementation in the zookeeperTutorial.md
New Feature
Improvement
- ZOOKEEPER-1871 - Add an option to zkCli to wait for connection before executing commands
- ZOOKEEPER-2907 - Logged request buffer isn't useful
- ZOOKEEPER-3730 - fix a typo about watchManagerName in the zookeeperAdmin.md
- ZOOKEEPER-3798 - remove the useless code in the ProposalRequestProcessor#processRequest
- ZOOKEEPER-3800 - improve the log printing the address when QuorumCnxManager#ListenerHandler's port binds
- ZOOKEEPER-3807 - fix the bad format when website pages build due to bash marker
- ZOOKEEPER-3841 - remove useless codes in the Leader.java
- ZOOKEEPER-3849 - improve the all logs with a necessary time unit at the start up of server
- ZOOKEEPER-3898 - Fix typos
- ZOOKEEPER-3942 - move traceMask calculation logic into the trace log guard
- ZOOKEEPER-3961 - Inaccurate Error Message
Release Notes - ZooKeeper - Version 3.7.0
New Feature
Improvement
Bug
- ZOOKEEPER-1105 - c client zookeeper_close not send CLOSE_OP request to server
- ZOOKEEPER-1677 - Misuse of INET_ADDRSTRLEN
- ZOOKEEPER-1998 - C library calls getaddrinfo unconditionally from zookeeper_interest
- ZOOKEEPER-2164 - fast leader election keeps failing
- ZOOKEEPER-2307 - ZooKeeper not starting because acceptedEpoch is less than the currentEpoch
- ZOOKEEPER-2475 - Include ZKClientConfig API in zoookeeper javadoc
- ZOOKEEPER-2490 - infinitely connect on windows
- ZOOKEEPER-2836 - QuorumCnxManager.Listener Thread Better handling of SocketTimeoutException
- ZOOKEEPER-3112 - fd leak due to UnresolvedAddressException on connect.
- ZOOKEEPER-3215 - Handle Java 9/11 additions of covariant return types to java.nio.ByteBuffer methods
- ZOOKEEPER-3426 - ZK prime_connection(the Handshake) can complete without reading all the payload.
- ZOOKEEPER-3579 - handle NPE gracefully when the watch parameter of zookeeper java client is null
- ZOOKEEPER-3613 - ZKConfig fails to return proper value on getBoolean() when user accidentally includes spaces at the end of the value
- ZOOKEEPER-3642 - Data inconsistency when the leader crashes right after sending SNAP sync
- ZOOKEEPER-3644 - Data loss after upgrading standalone ZK server 3.4.14 to 3.5.6 with snapshot.trust.empty=true
- ZOOKEEPER-3651 - NettyServerCnxnFactoryTest is flaky
- ZOOKEEPER-3653 - Audit Log feature fails in a stand alone zookeeper setup
- ZOOKEEPER-3654 - Incorrect *_CFLAGS handling in Automake
- ZOOKEEPER-3656 - SyncRequestProcessor doesn't update lastFlushTime correctly on observers
- ZOOKEEPER-3667 - set jute.maxbuffer hexadecimal number throw parseInt error
- ZOOKEEPER-3698 - NoRouteToHostException when starting large ZooKeeper cluster on localhost
- ZOOKEEPER-3699 - upgrade jackson-databind to address CVE-2019-20330
- ZOOKEEPER-3701 - Split brain on log disk full
- ZOOKEEPER-3710 - [trivial bug] fix compile error in PurgeTxnTest introduced by ZOOKEEPER-3231
- ZOOKEEPER-3726 - invalid ipv6 address comparison in C client
- ZOOKEEPER-3737 - Unable to eliminate log4j1 transitive dependency
- ZOOKEEPER-3738 - Avoid use of broken codehaus properties-maven-plugin
- ZOOKEEPER-3739 - Remove use of com.sun.nio.file.SensitivityWatchEventModifier
- ZOOKEEPER-3745 - Update copyright notices from 2019 to 2020
- ZOOKEEPER-3748 - Resolve release requirements in download page
- ZOOKEEPER-3769 - fast leader election does not end if leader is taken down
- ZOOKEEPER-3772 - JettyAdminServer should not allow HTTP TRACE method
- ZOOKEEPER-3780 - restore Version.getRevision() to be backward compatible
- ZOOKEEPER-3781 - Zookeeper 3.5.7 not creating snapshot
- ZOOKEEPER-3782 - Replace filter with list comprehension for returning list in zk-merge-pr.py
- ZOOKEEPER-3793 - Request throttling is broken when RequestThrottler is disabled or configured incorrectly.
- ZOOKEEPER-3801 - Fix Jenkins link in pom
- ZOOKEEPER-3814 - ZooKeeper config propagates even with disabled dynamic reconfig
- ZOOKEEPER-3818 - fix zkServer.sh status command to support SSL-only server
- ZOOKEEPER-3829 - Zookeeper refuses request after node expansion
- ZOOKEEPER-3830 - After add a new node, zookeeper cluster won't commit any proposal if this new node is leader
- ZOOKEEPER-3832 - ZKHostnameVerifier rejects valid certificates with subjectAltNames
- ZOOKEEPER-3842 - Rolling scale up of zookeeper cluster does not work with reconfigEnabled=false
- ZOOKEEPER-3863 - Do not track global sessions in ReadOnlyZooKeeperServer
- ZOOKEEPER-3865 - fix backward-compatibility for ZooKeeperServer constructor
- ZOOKEEPER-3876 - zkServer.sh status command fails when IPV6 is configured
- ZOOKEEPER-3877 - JMX Bean RemotePeerBean should enclose IPV6 host in square bracket same as LocalPeerBean
- ZOOKEEPER-3878 - Client connection fails if IPV6 is not enclosed in square brackets
- ZOOKEEPER-3885 - zoo_aremove_watches segfault: zk_hashtable needs locking!
- ZOOKEEPER-3891 - ZKCli commands give wrong error message "Authentication is not valid" for insufficient permissions
- ZOOKEEPER-3895 - Client side NullPointerException in case of empty Multi operation
- ZOOKEEPER-3905 - Race condition causes sessions to be created for clients even though their certificate authentication has failed
- ZOOKEEPER-3911 - Data inconsistency caused by DIFF sync uncommitted log
- ZOOKEEPER-3933 - owasp failing with json-simple-1.1.1.jar: CVE-2020-10663, CVE-2020-7712
- ZOOKEEPER-3937 - C client: avoid out-of-order packets during SASL negotiation
- ZOOKEEPER-3943 - Zookeeper Inspector throwing NullPointerExceptions and not displaying properly
- ZOOKEEPER-3944 - zookeeper c api sasl client memory leak
- ZOOKEEPER-3951 - Compile Error in Zookeeper.c without SASL
- ZOOKEEPER-3954 - use of uninitialized data in zookeeper-client/zookeeper-client-c/src/zookeeper.c:free_auth_completion
- ZOOKEEPER-3955 - added a shebang or a 'shell' directive to lastRevision.sh
- ZOOKEEPER-3979 - Clients can corrupt the audit log
- ZOOKEEPER-3983 - C client test suite hangs forever 'sss' is configured in /etc/nsswitch.conf
- ZOOKEEPER-3987 - Build failures when running surefire tests concurrently due to bind address already in use
- ZOOKEEPER-3991 - QuorumCnxManager Listener port bind retry does not retry DNS lookup
- ZOOKEEPER-3992 - addWatch api should check the null watch
- ZOOKEEPER-3994 - disconnect reason wrong
- ZOOKEEPER-4045 - CVE-2020-25649 - Upgrade jackson databind to 2.10.5.1
- ZOOKEEPER-4050 - Zookeeper Inspector reports "List of default node viewers is empty" when not specifically run from the zookeeper-contrib/zookeeper-contrib-zooinspector directory
- ZOOKEEPER-4055 - Dockerfile can't build Zookeeper C client library
- ZOOKEEPER-4191 - Missing executable bits in source release tarball
- ZOOKEEPER-4199 - Avoid thread leak in QuorumRequestPipelineTest
- ZOOKEEPER-4200 - WatcherCleanerTest often fails on macOS Catalina
- ZOOKEEPER-4201 - C client: SASL-related compilation issues on macOS Catalina
- ZOOKEEPER-4205 - Test fails when port 8080 is in use
- ZOOKEEPER-4207 - New CI pipeline checks out master in branch builds too
- ZOOKEEPER-4219 - Quota checks break setData in multi transactions
- ZOOKEEPER-4220 - Potential redundant connection attempts during leader election
- ZOOKEEPER-4230 - Use dynamic temp folder instead of static temp folder in RestMain
- ZOOKEEPER-4232 - InvalidSnapshotTest corrupts its own test data
Test
Wish
- ZOOKEEPER-3415 - convert internal logic to use java 8 streams
- ZOOKEEPER-3763 - Restore ZKUtil.deleteRecursive in order to help compatibility of applications with 3.5 and 3.6
Task
Sub-task