版本说明 - ZooKeeper - 版本 3.9.3
缺陷
- ZOOKEEPER-2332 - Zookeeper 因空的 txn 日志启动失败
- ZOOKEEPER-2623 - Multi 之外的 CheckVersion 导致 NullPointerException
- ZOOKEEPER-4293 - ClientCnxnSocketNetty 中的锁竞争(可能死锁)
- ZOOKEEPER-4394 - Learner.syncWithLeader 出现 NullPointerException
- ZOOKEEPER-4409 - SendAckRequestProcessor 中出现 NullPointerException
- ZOOKEEPER-4508 - 如果所有服务器都宕机,ZooKeeper 客户端在 ClientCnxn.SendThread.run 中会进入无限循环
- ZOOKEEPER-4712 - Follower.shutdown() 和 Observer.shutdown() 未正确关闭 syncProcessor,这可能导致数据不一致
- ZOOKEEPER-4733 - CPPUNIT TESTs 中的非返回函数错误和 asan 错误
- ZOOKEEPER-4752 - 从 .gitignore 中移除 zookeeper-server/src/main 中的版本文件
- ZOOKEEPER-4804 - 为 Netty 客户端使用守护线程
- ZOOKEEPER-4814 - 连接后(某些)旧客户端的协议不同步问题
- ZOOKEEPER-4839 - 使用 DigestMD5 启用强制客户端认证时,不存在的用户可以登录
- ZOOKEEPER-4843 - 将 jute.maxbuffer 配置为 1GB 或更大时遇到“不合理长度”错误
- ZOOKEEPER-4876 - jetty-http-9.4.53.v20231009.jar: CVE-2024-6763(3.7)
新特性
- ZOOKEEPER-4747 - Java api 缺少 sync() 调用的同步版本
改进
- ZOOKEEPER-4850 - 增强 zkCli 工具以支持读写二进制数据
- ZOOKEEPER-4851 - 在 IPAuthenticationProvider 中可选地尊重 X-Forwarded-For
- ZOOKEEPER-4860 - 默认禁用 IPAuthenticationProvider 中的 X-Forwarded-For
测试
- ZOOKEEPER-4859 - C 客户端测试经常挂起,无法取消
任务
- ZOOKEEPER-4820 - zookeeper pom 泄漏 logback 依赖
- ZOOKEEPER-4868 - 将 commons-io 库提升到 2.14.0
版本说明 - ZooKeeper - 版本 3.9.2
子任务
- ZOOKEEPER-910 - 使用 SelectionKey.isXYZ() 方法代替复杂的二进制逻辑
- ZOOKEEPER-4728 - 如果启动时 DNS 未就绪,Zookeeper 无法永远绑定到自身
缺陷
- ZOOKEEPER-2590 - exists() 应该检查读取 ACL 权限
- ZOOKEEPER-4236 - Java 客户端 SendThread 创建了许多不必要的 Login 对象
- ZOOKEEPER-4415 - Zookeeper 3.7.0 : 客户端支持的协议版本 [TLSv1.3] 不被服务器首选项接受
- ZOOKEEPER-4730 - admin 和 4lw dirs 命令报告的数据目录和日志目录大小不正确
- ZOOKEEPER-4785 - 在 DIFF 同步期间 Learner.syncWithLeader() 中的竞争条件导致事务丢失
改进
- ZOOKEEPER-3486 - 添加关于如何为 admin server 配置 SSL/TLS 的文档
- ZOOKEEPER-4756 - 合并脚本应使用 GitHub api 合并拉取请求
- ZOOKEEPER-4778 - 修补 jetty、netty 和 logback 以移除高危漏洞
- ZOOKEEPER-4794 - 减少 ZKDatabase#committedLog 的内存使用
- ZOOKEEPER-4801 - 为 ZkDataBase#committedLog 添加内存大小限制策略
- ZOOKEEPER-4799 - 重构 addWatch 命令中的 ACL 检查
愿望
- ZOOKEEPER-4807 - 为 leader goodbyte 日志添加 sid
版本说明 - ZooKeeper - 版本 3.9.1
改进
- ZOOKEEPER-4732 - 改进可重现构建
- ZOOKEEPER-4753 - 显式处理法定人数认证中的 DIGEST-MD5 与 GSSAPI
任务
- ZOOKEEPER-4751 - 更新 snappy-java 到 1.1.10.5 以解决 CVE-2023-43642
- ZOOKEEPER-4754 - 更新 Jetty 以避免 CVE-2023-36479, CVE-2023-40167, 和 CVE-2023-41900
- ZOOKEEPER-4755 - 处理 Netty CVE-2023-4586
版本说明 - ZooKeeper - 版本 3.9.0
子任务
- ZOOKEEPER-4327 - 不稳定的测试:RequestThrottlerTest
缺陷
- ZOOKEEPER-2108 - 使用 GCC 4.7 或更高版本编译 ZkAdaptor.cc 时出错
- ZOOKEEPER-3652 - ClientCnxn 中的不当同步
- ZOOKEEPER-3908 - zktreeutil 的多个问题
- ZOOKEEPER-3996 - 不稳定的测试:ReadOnlyModeTest.testConnectionEvents
- ZOOKEEPER-4026 - 嵌入在 MULTI 请求中的 CREATE2 请求只收到普通的 CREATE 响应
- ZOOKEEPER-4296 - ClientCnxnSocketNetty 未打开就关闭时出现 NullPointerException
- ZOOKEEPER-4308 - 不稳定的测试:EagerACLFilterTest.testSetDataFail
- ZOOKEEPER-4393 - 在 FIPS 模式下连接 zookeeper 的问题
- ZOOKEEPER-4466 - 支持同一路径上的不同监听模式
- ZOOKEEPER-4471 - 移除 WatcherType.Children 破坏了持久监听器的子节点事件
- ZOOKEEPER-4473 - zooInspector 创建根节点时因路径验证失败
- ZOOKEEPER-4475 - 持久递归监听器收到 NodeChildrenChanged 事件
- ZOOKEEPER-4477 - 自 Java 9 起,单个 Kerberos 票据续订失败可能阻止所有未来的续订
- ZOOKEEPER-4504 - ZKUtil#deleteRecursive 在 HDFS HA 功能中导致死锁
- ZOOKEEPER-4505 - CVE-2020-36518 - 升级 jackson databind 到 2.13.2.1
- ZOOKEEPER-4511 - 不稳定的测试:FileTxnSnapLogMetricsTest.testFileTxnSnapLogMetrics
- ZOOKEEPER-4514 - ClientCnxnSocketNetty 抛出 NPE
- ZOOKEEPER-4515 - ZK Cli quit 命令总是记录错误
- ZOOKEEPER-4537 - SyncThread 和 CommitProcessor 线程之间的竞争
- ZOOKEEPER-4549 - ProviderRegistry 可能会被重复初始化
- ZOOKEEPER-4565 - 配置监听路径异常截断,导致 chroot zookeeper 客户端失败
- ZOOKEEPER-4647 - 测试在 JDK20 上无法通过,因为我们尝试模拟 InetAddress
- ZOOKEEPER-4654 - 修复 C 客户端测试 Util.cc 中的编译错误。
- ZOOKEEPER-4674 - C 客户端测试在 CI 上无法通过
- ZOOKEEPER-4719 - 使用 bouncycastle jdk18on 代替 jdk15on
- ZOOKEEPER-4721 - 升级 OWASP Dependency Check 到 8.3.1
新特性
- ZOOKEEPER-4570 - Admin server 提供 API 用于创建快照并流出数据
- ZOOKEEPER-4655 - 传递触发 WatchEvent 的 Zxid
改进
- ZOOKEEPER-3731 - 禁用 HTTP TRACE 方法
- ZOOKEEPER-3806 - TLS - 为客户端信任库/密钥库提供动态加载
- ZOOKEEPER-3860 - 当连接 URL 中提供了主机名时,避免为进行主机名验证而进行反向 DNS 查找
- ZOOKEEPER-4289 - 减少 Prometheus 指标对性能的影响
- ZOOKEEPER-4303 - ZooKeeperServerEmbedded 可以自动分配和暴露端口
- ZOOKEEPER-4464 - zooinspector 将“Ephemeral Owner”以十六进制显示,以便与 jmx 会话轻松匹配
- ZOOKEEPER-4467 - Request.op2String 中缺少操作码 (addWatch)
- ZOOKEEPER-4472 - 支持单独移除持久监听器
- ZOOKEEPER-4474 - ZooDefs.opNames 未使用
- ZOOKEEPER-4490 - 将 Clover 结果发布到 SonarQube
- ZOOKEEPER-4491 - 为 Zktreeutil 添加 SSL 支持
- ZOOKEEPER-4492 - 将 readOnly 字段合并到 ConnectRequest 和 Response 中
- ZOOKEEPER-4494 - 修复错误消息格式
- ZOOKEEPER-4518 - 移除 PrepRequestProcessor#pRequest 方法中无用的日志
- ZOOKEEPER-4519 - Testable 接口应该有一个 testableCloseSocket() 方法
- ZOOKEEPER-4529 - 升级 netty 到 4.1.76.Final
- ZOOKEEPER-4531 - 回退 Netty TCNative 的修改
- ZOOKEEPER-4551 - 客户端关闭连接时不要记录垃圾堆栈跟踪
- ZOOKEEPER-4566 - 创建用于递归快照分析的工具
- ZOOKEEPER-4573 - 在 Request 中封装请求字节缓冲区
- ZOOKEEPER-4575 - ZooKeeperServer#processPacket 接收记录而不是字节
- ZOOKEEPER-4616 - 升级开发环境的 docker 镜像以解决 CVE
- ZOOKEEPER-4622 - 添加 Netty-TcNative OpenSSL 支持
- ZOOKEEPER-4636 - 修复 AIX 的 zkServer.sh 脚本
- ZOOKEEPER-4657 - 发布 SBOM 工件
- ZOOKEEPER-4659 - 由于 OWASP 在 1.4 版本上报告 CVE-2021-37533 失败,将 Commons CLI 升级到 1.5.0
- ZOOKEEPER-4660 - 抑制 CVE-2021-37533 的 OWASP 误报失败
- ZOOKEEPER-4661 - 升级 Jackson Databind 到 2.13.4.2 以解决 CVE-2022-42003 CVE-2022-42004
- ZOOKEEPER-4705 - 限制 GitHub 合并按钮只允许 squash commit
- ZOOKEEPER-4717 - 在请求中缓存序列化数据以避免重复序列化。
- ZOOKEEPER-4718 - 移除序列化中不必要的堆内存分配有助于减少 GC 压力。
测试
- ZOOKEEPER-4630 - 修复 ConnectionMetricsTest.testRevalidateCount 中的 NPE
- ZOOKEEPER-4676 - ReadOnlyModeTest 在 JDK20 上无法编译 (Thread.suspend 已被移除)
愿望
- ZOOKEEPER-3615 - 编写 TLA+ 规范以验证 Zab 协议
- ZOOKEEPER-4710 - 通过在设置标志后释放信号量来修复 ZkUtil deleteInBatch()
- ZOOKEEPER-4714 - 改进 syncRequestProcessor 性能
- ZOOKEEPER-4715 - 在 testGetCurrentLogSize 中验证文件大小和位置。
任务
- ZOOKEEPER-4479 - 测试:C 客户端测试 TestOperations.cc testTimeoutCausedByWatches1 在 CI 上非常不稳定
- ZOOKEEPER-4482 - 修复 commons-io 和 commons-cli 的 LICENSE 文件
- ZOOKEEPER-4599 - 升级 Jetty 以避免 CVE-2022-2048
- ZOOKEEPER-4641 - GH CI 失败,错误:函数 FIPS_mode 的隐式声明
- ZOOKEEPER-4642 - 移除 Travis CI
- ZOOKEEPER-4649 - 由于 CVE-2022-41915,升级 netty 到 4.1.86
- ZOOKEEPER-4669 - 升级 snappy-java 到 1.1.9.1 (以支持 M1 Mac)
- ZOOKEEPER-4688 - 升级
cyclonedx-maven-plugin
到 2.7.6 - ZOOKEEPER-4700 - 更新 Jetty 以修复 CVE-2023-26048 和 CVE-2023-26049
- ZOOKEEPER-4707 - 更新 snappy-java 以解决多个 CVE
- ZOOKEEPER-4709 - 升级 Netty 到 4.1.94.Final
- ZOOKEEPER-4716 - 升级 jackson 到 2.15.2,抑制两个 CVE 误报错误