yuluo-yx opened a new issue, #4415: URL: https://github.com/apache/rocketmq-dashboard/issues/4415
### Before Creating the Bug Report - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository and believe that this is not a duplicate. - [x] This is a defect in RocketMQ Studio, not a usage question and not a defect in another Apache RocketMQ repository. - [x] I can reproduce this on the current `master` branch, or I have stated the exact version I am running below. ### Studio Version branch: `master` This issue is migrated from PR #4090, which was based on the former `rocketmq-studio` branch. The branch switch notice #4379 states that `master` now points at the same Studio commit graph. ### Runtime Environment See the migrated verification and reproduction notes below. The original fix was developed and verified locally before the branch switch. ### Connected RocketMQ Cluster See the migrated reproduction notes below. This bug is in RocketMQ Studio behavior. ### Build Toolchain See the migrated verification notes below. ### Describe the Bug 修复周期维护窗口在夏令时切换时错误延迟或提前发送告警的问题。 ### Steps to Reproduce The previous pull request body below includes the reproduction or scenario that motivated the fix. ## 变更目的 修复周期维护窗口在夏令时切换时错误延迟或提前发送告警的问题。 - 纽约每日 02:30–04:00 的窗口在 2026-03-08 应解析为 03:30–04:00;旧实现错误延长到 05:00。 - 首个窗口明确选择秋季重复时段的 `-05:00` 偏移时,旧实现重新解析为 `-04:00`,导致有效窗口被跳过。 ## 修改内容 首个窗口保留请求指定的确切起止瞬间;后续窗口从名义当地时间分别解析开始与结束边界。保留原有后续重复时段的偏移选择规则、星期限制和周期截止时间。没有新增依赖、配置或数据库字段。 13 个时间边界测试覆盖一小时/半小时缺口、秋季重复时段、跨日每周窗口与亚秒边界;6 个服务组合测试覆盖创建、UTC 存储、维护窗口计算和三种通知渠道入队时间。新增中文行为与回滚说明。 ## 验证 基线:`d6dee7d7ccfcf4886f02466ec51452a6928b2cc8`,Java 21。 - 三个最小复现在旧实现上全部失败。 - `mvn -B -ntp -Dtest=AlertSilenceScheduleTest,AlertSilenceDstTest,AlertSilenceServiceTest,RecurringSilenceNotificationTest,NotificationOutboxServiceTest test`:65 个测试通过,Checkstyle 通过。 - `mvn -B -ntp -DskipTests package`:构建通过。 - JaCoCo:修复类行覆盖率 35/37(94.6%),分支覆盖率 38/44(86.4%)。 - 全量后端测试:2,110 项,3 个失败。已在完全未修改的上游基线复现相同失败:`AuthCorsIntegrationTest` 两项、`AliyunInstanceProviderTest#getGroupProgressShouldMapLagRowsTest` 一项。 - `git diff --check`:通过。4 个文件,416 行新增、18 行删除。 未运行真实集群 E2E、压力和混沌测试。本次时间计算仍只检查最多 8 个候选日期,通知测试不向外发送消息。上游既有依赖漏洞尚未由本 PR 处理,不能据此声称项目级漏洞门槛通过。 按贡献指南 #2107 将同一维护窗口语义的缺陷与验证合并。已核对 #3070 的原始功能、#3303 的七天周窗口修复和 #3415 的配置边界测试,本次处理的夏令时缺口与明确偏移不与其重复。 本地执行验证,提交使用 `[skip ci]`,不会自动运行 `push`/`pull_request` 工作流。无迁移,直接替换;回滚本提交即可。 ### What Did You Expect to See? RocketMQ Studio should preserve the behavior described by the fix and avoid the faulty behavior described above. ### What Did You See Instead? The faulty behavior described above occurs without the migrated fix. ### Additional Context - Replaces PR #4090: https://github.com/apache/rocketmq-dashboard/pull/4090 - Branch switch notice: #4379 - Target branch for the new PR: `master` ### Are You Willing to Submit a Pull Request? - [x] Yes, I am willing to submit a pull request. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
