社区朋友们今年 6 月份的社区月报来啦不同于常规月度大版本功能迭代本月 Apache DolphinScheduler 社区全力深耕底层治理小伙伴们重点打磨了平台稳定性比如完成 3.4.2 版本运维闭环、优化任务故障转移能力、修复高并发偶发故障、落地日志敏感数据脱敏补齐部署、存储、CI 工程等各类线上细碎短板。本篇月报我们就带大家梳理一下 6 月份项目的核心生产变更、生产环境升级建议并公布 6 月优秀社区贡献者榜单下滑查看吧✨本月项目变更一览统计范围2026-06-01 至 2026-07-01合并 PR22贡献者9代码变更630 / -473主要波及模块Master、API、Storage、Helm、UI、Docs/治理可以看到6 月的项目变更更偏“发布维护 稳定性补强 文档完善”既有 3.4.2 发布与相关修订也有并发安全、日志脱敏、Helm 修复、S3 资源列表等实用改进。适合谁看终端用户/业务方想快速判断 6 月有没有值得关注的稳定性或可用性变化运维/平台同学重点关注 failover、Helm、S3、日志安全这几类上线影响面较大的改动开发者适合看 6 月社区把精力放在了哪些“治理型修复”上对用户最有感的 6 件事3.4.2 发布与修订已经落地6 月包含 3.4.2 发布以及发布后文档修订属于“版本维护月”的典型节奏。对应 PR#18317、#18319Worker 日志更安全避免明文密码落日志对多租户/企业环境尤其关键日志泄露往往比功能 bug 更“隐蔽且致命”。对应 PR#18333Helm 使用体验修复与依赖更新包含 ConfigMap label 冲突修复以及 MySQL chart 版本更新直接影响部署体验与可维护性。对应 PR#18341、#18336并发安全修复避免 ConcurrentModificationException将 HashMap 替换为 ConcurrentHashMap属于典型的“偶发但影响面大”的稳定性补强。对应 PR#18331Failover 场景增强任务 failover 时可 kill application对 Yarn / K8s 等外部执行引擎更友好避免任务切换后出现残留应用占资源。对应 PR#18353S3 资源列表限制修复不再只返回 1000 条对依赖 S3 存储的用户是实际痛点修复直接影响可见性与可用性。对应 PR#18381升级与验证建议如果你是生产用户建议按“发布维护类变更 稳定性补强”的思路做验证必回归日志脱敏敏感信息不落盘、并发场景稳定性、存储S3资源可见性、Helm 部署升级建议补充发布版本相关的升级路径与文档一致性检查特别是平台内嵌文档/链接建议在测试/集成环境保留以下拉取方式作为后续补充 6 月数据前的标准动作gitfetch origin devgitcheckout devgitpull--rebase贡献者榜单按本地提交 author name 统计6 月参与提交的作者共 9 位eye-gu、Jarek Potiuk、luxiaolong、njnu-seafish、suyc、Victor Laborie、Wenjun Ruan、xiangzihao、Yanjun Qiu关键技术变更深度分析1. 并发安全修复把偶发异常前移到代码结构层解决代表 PR#18331主要变更UserGroupInformationFactory中缓存UserGroupInformation的容器从HashMap改为ConcurrentHashMap同时新增了专门的并发测试用例。为什么重要这类问题最麻烦的地方不在于“会报错”而在于“只会在高并发下偶发报错”。一旦 Hive 数据源登录与 Kerberos 续期线程并发访问同一份缓存普通HashMap在遍历和修改同时发生时就可能触发ConcurrentModificationException。这次修复的价值社区没有只做一个“临时加锁”的热修而是把核心共享结构替换成并发容器再补上一组专门模拟forEach logout/login并发冲突的测试。这样修的不是表面现象而是把问题从根上收掉。对使用者的意义如果你的环境里 Hive、Kerberos、长连接会话比较多这类修复能明显降低“偶发失败、难以复现、重试又恢复”的灰色故障。建议回归重点看 Hive 相关任务、长时间运行后的 Kerberos 续期、以及高并发数据源访问场景。2. Failover 逻辑增强不仅切换任务还主动处理外部残留应用代表 PR#18353主要变更新增kill-application-when-task-failover配置项并把它接入MasterConfig、TaskExecution以及多套部署配置文件中。为什么重要在调度系统里failover 以前更多关注“调度状态能不能接上”但对 Yarn、K8s 这类外部执行引擎来说真正的风险常常在外部应用残留。调度端认为任务已经接管了外部引擎里却还挂着旧 application占资源、打日志、甚至继续跑。这次修复的价值它把 failover 从“只处理调度元数据”推进到“顺手处理执行现场”。从提交看这个改动不仅改了 Master 代码还同步补到了application.yaml、docker-compose、Kubernetes values 和 README说明它不是实验性质而是打算给多种部署方式都提供统一开关。对使用者的意义对 Yarn/K8s 用户最有价值。以前一次 Master 异常之后可能要同时处理任务状态恢复和外部资源清理现在至少有了统一配置入口可以把 failover 后的“残留 application”问题前置治理。建议回归模拟 Master 切换、任务执行中断、外部引擎 application 残留三类场景确认开关启用后不会误杀正常任务也不会放过应回收的 application。3. S3 分页修复从“看起来能用”到“数据量上来后还能用”代表 PR#18381主要变更S3StorageOperator.listStorageEntity()从单次listObjectsV2调用改成基于ContinuationToken的循环拉取并补充了测试。为什么重要这是非常典型的“开发环境没问题生产环境才暴露”的缺陷。S3 的ListObjectsV2默认会分页如果代码只取第一页那么资源数量一旦超过 1000就会出现“明明文件在但列表里看不到”的问题。这次修复的价值修复点非常直接也很规范。它没有去做业务层补丁而是在存储插件底层把分页遍历补完整直到isTruncated()为假才结束。这样上层资源中心、文件管理、目录浏览这些依赖存储列举能力的功能都会一起受益。对使用者的意义只要你的 S3 桶里资源规模大、目录层级深或者本来就把 DolphinScheduler 当统一资源入口这个修复就是“真问题真收益”不是优化体验而是恢复正确性。建议回归准备超过 1000 条对象的目录、混合目录与文件的前缀结构确认 UI/API 列表结果与实际桶内对象数一致。4. 日志脱敏改动很小但安全收益很大代表 PR#18333主要变更从 diff 看这个提交只改了PasswordUtils一处代码行数变化非常小。为什么依然值得单独讲安全类改动不能只按“改了多少行”判断价值。密码明文出现在日志里往往不是立刻导致任务失败而是把风险埋进日志平台、排障工单、备份归档和多人协作链路里影响范围反而更广。这次修复的价值它说明 6 月社区不仅在修功能 bug也在补“默认安全”细节。很多真实事故不是权限系统失守而是普通日志把不该出现的信息带出来这类修复属于投入小、收益大的治理型改动。对使用者的意义如果你们已经把 Worker 日志接入 ELK、SLS、CloudWatch 这类集中式日志系统这个改动的意义会比单机部署更大因为日志一旦被汇聚泄露面会指数级放大。建议回归重点检查连接配置打印、异常栈、脱敏后日志是否仍保留足够排障信息避免“安全性上去了可观测性没了”。方向映射把 6 月这 22 个 PR 放回长期演进方向来看本月更像一次“把边边角角但高频会踩的坑补齐”的维护窗口发布与治理#18310、#18317、#18319、#18363、#18374、#18375运行时稳定性#18331、#18347、#18351、#18352、#18353云原生与部署#18336、#18341、#18355、#18360安全与合规#18310、#18333、#18363生态与存储#18381文档与用户体验#18321、#18323、#18327、#18308如果用一句话概括 Apache DolphinScheduler 项目在 6 月的变更即不是“大功能月”而是“把发布、部署、调度恢复和安全细节继续补平”的一个治理月。附录 A2026 年 6 月合并 PR 明细2026-06-02#18310Add AGENTS.md SECURITY.md to make the security model discoverable2026-06-04#18317Release 3.4.22026-06-04#18319Hotfix 3.4.2 doc error2026-06-05#18321Update the parameter priority explanation in the docs2026-06-05#18323Add a note to the parameter priority documentation specifying and fix some issues2026-06-07#18316Remove dead code aftert_ds_relation_user_alertgrouptable dropped2026-06-10#18331Replace HashMap with ConcurrentHashMap inUserGroupInformationFactory2026-06-12#18341Fix duplicateapp.kubernetes.io/namelabel on ConfigMap2026-06-12#18333Remove plaintext passwords from the logs2026-06-12#18336Update mysql helm chart version2026-06-15#18347countTaskInstanceStateByProjectCodesusessubmit_timefiltering2026-06-16#18327Fix and enrich the documentation for parameter priority2026-06-16#18355Change the description field to optional2026-06-17#18353Addkill-application-when-task-failoverlogic2026-06-17#18352Fix rerun workflow instance should follow the specifiedworkerGroup2026-06-18#18360Change the description field to optional in k8s config2026-06-22#18351FixforceTaskSuccesscannot reset the last unsuccessful workflow instance to success2026-06-22#18363Fix sonar token leak2026-06-23#18374Remove sonar check2026-06-23#18375Fix auto labeler error2026-06-23#18308Frontend correctly uses the preferred values of the associated project for task creating and workflow scheduling2026-06-26#18381Fix list resources returned only 1000 records in s3 storage type附录 B参考链接PR #18308: https://github.com/apache/dolphinscheduler/pull/18308PR #18310: https://github.com/apache/dolphinscheduler/pull/18310PR #18316: https://github.com/apache/dolphinscheduler/pull/18316PR #18317: https://github.com/apache/dolphinscheduler/pull/18317PR #18319: https://github.com/apache/dolphinscheduler/pull/18319PR #18321: https://github.com/apache/dolphinscheduler/pull/18321PR #18323: https://github.com/apache/dolphinscheduler/pull/18323PR #18327: https://github.com/apache/dolphinscheduler/pull/18327PR #18331: https://github.com/apache/dolphinscheduler/pull/18331PR #18333: https://github.com/apache/dolphinscheduler/pull/18333PR #18336: https://github.com/apache/dolphinscheduler/pull/18336PR #18341: https://github.com/apache/dolphinscheduler/pull/18341PR #18347: https://github.com/apache/dolphinscheduler/pull/18347PR #18351: https://github.com/apache/dolphinscheduler/pull/18351PR #18352: https://github.com/apache/dolphinscheduler/pull/18352PR #18353: https://github.com/apache/dolphinscheduler/pull/18353PR #18355: https://github.com/apache/dolphinscheduler/pull/18355PR #18360: https://github.com/apache/dolphinscheduler/pull/18360PR #18363: https://github.com/apache/dolphinscheduler/pull/18363PR #18374: https://github.com/apache/dolphinscheduler/pull/18374PR #18375: https://github.com/apache/dolphinscheduler/pull/18375PR #18381: https://github.com/apache/dolphinscheduler/pull/18381