
点亮⭐️
https://github.com/apache/
点击蓝字 关注我们
2026 年 5 月的 DolphinScheduler 社区更新,关键词只有两个:稳 与 准。一方面,Master failover 这类“线上一出问题就影响面很大”的稳定性隐患被补齐;另一方面,API 权限校验、插件依赖冲突、远程任务空指针这类“用着用着就踩坑”的细节也被系统性修复。
本月报把 5 月合并到 dev 分支的重点变化讲清楚,包括你会受哪些影响、要不要升级、怎么验证。
本月数据
你会看到“测试相关变更”占比很高:这是社区在为后续迭代打地基——把 CI/UT 跑稳、跑快,才能让功能更敢合、修复更快落地。
谁需要看:
对用户最有感的6件事
Master 故障转移更可靠
典型场景:Master 挂掉后集群恢复慢、或 failover 卡住。5 月的修复重点之一是避免 failover 的锁泄漏,降低“故障后迟迟无法恢复可调度”的概率。
对应 PR:https://github.com/apache/dolphinscheduler/pull/18207
关键 API 的权限更“严谨”
补齐了部分 API 的项目鉴权缺口(例如 view-gantt / view-variables / trigger workflow),这会让权限模型更符合直觉:没有权限就应当访问不到。
对应 PR:https://github.com/apache/dolphinscheduler/pull/18212
RemoteShell 任务更不容易 NPE
远程任务一旦空指针通常很难排查(日志远、上下文多)。本月修复了 RemoteShell 的空指针类问题,让“任务失败原因”更可解释、也更可修。
对应 PR:https://github.com/apache/dolphinscheduler/pull/18210
部分任务插件依赖冲突得到治理
以 AliyunServerlessSpark 为代表的插件,过去常见问题是“依赖拉扯导致 ClassNotFound / 冲突”。本月针对依赖冲突和异常处理做了增强,插件可用性更稳。对应 PR:https://github.com/apache/dolphinscheduler/pull/18180
CI/单测更快、更不容易被跳过
这不是“新功能”,但对用户很关键:CI 越稳定,越能把问题挡在合并前;测试越扎实,线上故障率越低。
对应 PR:https://github.com/apache/dolphinscheduler/pull/18213、https://github.com/apache/dolphinscheduler/pull/18214、https://github.com/apache/dolphinscheduler/pull/18205
AWS S3 远程日志支持更灵活的 Region/Endpoint
对使用 S3 兼容存储(或私有化 endpoint)的用户更友好:region 和 endpoint 的组合更可控,减少“配置正确但连不上”的排障时间。
对应 PR:https://github.com/apache/dolphinscheduler/pull/18268
升级与验证建议
这份更新基于 2026 年 5 月合并到 dev 分支的 PR,适合做“跟进趋势与提前验证”。如果你是生产用户,建议优先按“风险”决定是否跟进:
建议尽快关注/跟进:涉及 Master failover、权限校验、安全相关、任务插件稳定性的问题修复。
可以按需跟进:CI/测试优化、文档与格式类修订、类型返回迁移(更多是工程质量提升)。
本月变更集中在 dev 分支合并 PR,验证建议(给测试/集成环境):
git fetch origin devgit checkout devgit pull --rebase
然后优先回归这三类场景:
贡献者致谢
感谢所有在 2026 年 5 月 为 Apache DolphinScheduler 提交与合并 PR 的贡献者。你们让调度系统在稳定性、可用性与生态扩展上持续进化。

关键技术变更深度分析
本月共合并 50 个 PR,技术焦点集中在“稳定性 + 安全权限 + 插件可靠性 + CI/测试效率”四个方向。为便于读者快速抓住重点,下面选取 5 项代表性变更展开分析。
链接 / Link:https://github.com/apache/dolphinscheduler/pull/18207
作者 / Author:@ruanwenjun
Base/Head:dev ← dev_wenjun_fix18197
Diff 统计 / Diff stats:+171 / -10
背景与痛点:Master 发生故障转移(failover)时依赖分布式锁保证“同一地址的 failover 不被并发重复执行”。锁释放路径不对会导致锁节点泄漏,进而阻塞后续 failover,表现为集群在故障后“迟迟无法恢复到可调度状态”。
设计思路与实现原理:将锁获取接口改为返回可关闭句柄(AutoCloseable),用 try-with-resources 强制 acquire/release 对称;同时让调用方保存精确 lock path,避免释放父路径这种隐蔽错误。
量化对比建议:在测试集群中构造 3 Master 的 failover 风暴(kill -9 + 自动拉起),对比修复前后:failover 成功率、平均恢复时间(MTTR)、failover 线程阻塞时长。建议把 Registry 锁节点数量作为可观测指标(泄漏会持续累积)。
兼容性与回滚:接口签名变化会影响调用方;回滚策略是回退到修复前版本,但需要同步清理已泄漏的锁节点,避免“回滚后仍不可用”。

链接 / Link:https://github.com/apache/dolphinscheduler/pull/18212
作者 / Author:@ruanwenjun
Base/Head:dev ← dev_wenjun_fixCvePermissionCheck
Diff 统计 / Diff stats:+321 / -16
背景与痛点:工作流相关的 API 如果缺失项目级鉴权,很容易出现“只要知道 ID 就能访问/触发”的越权风险;这类问题在企业多租户环境尤其敏感。
设计思路与实现原理:在 view-gantt/view-variables/trigger workflow 等入口补齐项目授权校验,把权限校验前置到 Controller/Service 层,保证所有调用路径一致生效。
量化对比建议:用压测工具对比补齐鉴权前后延迟开销(鉴权通常是 DB/缓存读),并在安全测试中加入“跨项目访问”用例,确保回归。
最佳实践:建议企业用户开启更严格的租户/项目隔离策略,并将敏感 API 纳入审计日志。

链接 / Link:https://github.com/apache/dolphinscheduler/pull/18210
作者 / Author:@leocook
Base/Head:dev ← fix-18201-remoteshell-npe
Diff 统计 / Diff stats:+34 / -29
背景与痛点:RemoteShell 任务属于“运维/集成型任务”,在生产中很容易因网络抖动、命令输出流处理差异导致 NPE 或日志丢失。一旦失败,用户看到的往往只是“任务失败”而缺少可定位信息。
设计思路与实现原理:围绕 SSH channel 的输入/输出流处理做健壮性修复,避免空指针;同时改进异常处理路径,确保用户能在日志中看到根因。
量化对比建议:用故障注入(模拟远端断连/输出流为空/命令立即退出)跑 1k 次任务执行,统计 NPE 发生率与日志完整率。
风险与回滚:变更集中在插件侧,回滚较简单;但建议同时保留回归用例覆盖“空输出/大输出/非 0 退出码”。
链接 / Link:https://github.com/apache/dolphinscheduler/pull/18180
作者 / Author:@includetts
Base/Head:dev ← fix/aliyun-serverless-spark-deps-v2
Diff 统计 / Diff stats:+16 / -6
背景与痛点:插件依赖冲突属于“编译期不报错、运行期爆炸”的典型问题,常见表现是 NoSuchMethodError / NoSuchFieldError。对用户来说,问题往往只在某些环境、某些依赖组合下才出现,非常难排查。
设计思路与实现原理:修正关键依赖版本并改进异常封装,确保 root cause 不被吞掉;让用户从日志里直接看到冲突的类与方法,缩短排障链路。
量化对比建议:在不同依赖树(如多版本 Hadoop/Spark client)下执行插件 smoke test,统计启动成功率与异常可读性评分(如是否能直接定位冲突 jar)。
最佳实践:生产中建议为 task plugin 引入依赖隔离策略(如 shading/relocation 或独立 classloader),降低跨插件污染风险。
链接 / Link:https://github.com/apache/dolphinscheduler/pull/18213
作者 / Author:@SbloodyS
Base/Head:dev ← ut_performance_optimize
Diff 统计 / Diff stats:+22 / -6
背景与痛点:CI/单测体系如果“慢、易跳过、易 flaky”,会把稳定性问题推迟到线上。测试体系的工程化优化虽然不显眼,但决定了社区迭代速度与质量底线。
设计思路与实现原理:通过优化 UT 执行与 CI 配置,避免用例被意外 skip,并在 CI 环境问题时做短期兜底(暂时禁用/恢复),保证主干可用。
量化对比建议:对比优化前后 CI 总耗时、UT 用例数、被 skip 的用例比例、flaky 用例重跑次数。
风险与回滚:临时禁用类改动需要跟踪恢复计划;建议将禁用策略和恢复条件写入 issue/PR 描述,并在后续版本及时回收。
附录:
END

用户案例

迁移实战

最新发版消息

加入社区
关注社区的方式有很多:
同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。
非代码方式包括:
完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。
代码方式包括:
查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。


你的好友小海豚拍了拍你
并请你帮她点一下“分享”
