🌊 Fluss 每日动态

📅 2026-04-20

🔗 apache/fluss

📝 7 新 Issues
✅ 6 关闭
✨ 10 新 PRs
🎉 9 合并

🔥 核心要点

⚠️ 重点关注

💬 Issue/PR 动态

Issue 讨论

Issue #3129 [Test] Unstable test SparkStreamingTest read: log table

  • @Yohahaha: 提供了详细的根因分析,指出是 StreamExecution.stop() 和 Fluss 元数据获取之间的竞态条件,并提供了修复前后的时序图

Issue #3140 [POC][client] Support log scanner for multiple tables

  • @wuchong: 支持多表读取是很有价值的增强,建议在 LogFetcher 层面整合 I/O,保持用户 API 不变,确保读写一致性

Issue #3144 Batch reads on ``/`` fail with coordinator NPE instead of a clear unsupported error

  • @luoyuxia: 请求 loserwang1024 协助查看此问题

Issue #3084 Flink log table consumer threw an out-of-range offset exception

  • @wuchong: 请求 loserwang1024 协助查看此问题

PR Review

PR #2829 [kv] Support elect standby replicas for primary key table

  • @Copilot: 指出 isStandbyReplica 标志在副本成为 leader 时未重置,可能导致状态不一致;建议在 makeLeader 中显式清除该标志
  • @wuchong: 指出 [P1] 问题:重分配路径可能将当前 standby 提升为 leader 而非 newReplicas[0],导致 rebalance 无法完成;建议 [P2] 需要在 ISR 扩展时通知副本准备 standby
  • @swuferhong: 解释保留 wasLeader/wasStandby 标志的原因:不同转换需要不同处理(如 leader→standby 需删除数据,follower→standby 需下载数据)

PR #3151 [KV] Kvscan Server Side

  • @Copilot: 指出 ScannerManager.close() 可能导致计数器变负,建议添加 closing 标志;KvTablet 空桶清理路径需 try/finally;totalBytes 可能溢出

PR #3150 Reintroduce Quickstart Image

  • @luoyuxia: 指出 next 版本依赖 SNAPSHOT 但无发布流程,镜像构建会失败;建议恢复之前手动构建方式或添加快速启动镜像内容
  • @Copilot: 指出 next 版本需要显式配置 mavenRepoUrl 指向 ASF snapshots 仓库;sql-client 服务命令需修改为 /opt/flink/bin/sql-client.sh

PR #3120 [docs] Add security reporting documentation

  • @luoyuxia: 建议采纳 Copilot 的改进建议使文档更清晰专业
  • @Copilot: 建议修正语法问题和措辞,使用更清晰明确的指令性语言提高安全报告流程的清晰度

PR #3116 [spark] Support filter pushdown for log tables

  • @Yohahaha: 建议在现有测试套件中添加测试,而非创建新套件;需要测试分区表;使用 Option[Predicate] 保持 Scala 风格
  • @YannByron: 建议 FlussScanBuilder 继承 SupportsPushDownV2Filters 而非 SupportsPushDownFilters

PR #3152 [fluss/ai agent] enable ai doc agent on website

  • @wuchong: 指出 AI 按钮与向上的按钮重叠,建议放到导航栏如 Doris 那样;ASF 默认阻止外部脚本,需更新 .htaccess 并与隐私团队协调

PR #2786 [client] cancel pending log download when closing remote log downloader.

  • @fresh-borzoni: 指出 request.future 从未完成或取消,导致 close() 后挂起的下载会孤立外部 future,消费者 .get() 会阻塞;建议在返回前取消 future

PR #3078 [server] Add authorization to databaseExists and tableExists RPC call…

  • @wuchong: 建议先检查授权再检查元数据以提高性能;使用 isAuthorized 替代 try-catch authorize() 更清晰高效
  • @Copilot: 建议使用非抛出的授权检查 isAuthorized 替代 try-catch Exception,仅将显式拒绝视为 exists=false

📝 新建 Issue/PR

Issues

Pull Requests

✅ 关闭 Issue/PR

已关闭 Issues

已合并 PRs