Skip to content

修复全量复测中的套件准备、活动夹具与容量保护 - #145

Merged
cxymds merged 2 commits into
mainfrom
cxymds/fix-suite-environment-retest
Nov 10, 2026
Merged

cxymds merged 2 commits into
mainfrom
cxymds/fix-suite-environment-retest

Conversation

@cxymds

@cxymds cxymds commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

上轮全量复测中,Table 缺配套模块、矩阵启动拓扑外节点、Rebalance 活动夹具在首次进度持久化前结束,以及扩池写入采样过慢,导致用例没有完成真实验证。性能报告还会把含服务错误但退出码为 0 的轮次计入成功。

本次基于已合并的 #144 修复这些测试与环境问题:

  • 准备完整 Table smoke 源码树,绑定候选源码 SHA;缺本地模块在 venv 与产品请求前明确失败。将来源清单及文件哈希与报告一起上传,供 runner 清理后追溯。
  • 容错矩阵按参与节点数量启动,并复用非阻塞启动与并行就绪等待。
  • 为 Rebalance 活动场景提供独立的 128 MiB 对象夹具和容量准入;保留 Started 非零进度、操作窗口、终态迁移与数据校验,提前完成明确失败。
  • 扩池写入按单盘余量、在途对象和观测增长保留停止空间,2 秒采样,缩短停止等待;提前容量保护不能算达到目标,MPU 清理错误保留 cause/request ID。
  • 性能逐轮保留成功、失败、未执行、错误行数与超时前后是否已有 Report;含服务错误的指标只保留作诊断。重解析写入独立台账、摘要和日志,保留原中止状态、实际耗时及原始证据;分析步骤读取相应摘要,解析失败仍返回非零。原执行台账和重解析产物均纳入 artifact。
  • 语法检查排除 AppleDouble,逐文件保留退出码;同步 CI、实现评审摘要与中文复测说明。

验证:原改动的 117 个 Python 回归用例,116 通过、1 个因非 root Linux 条件跳过;扩池 Shell 回归在正常及缺少 HOME 环境均通过;27 个 Shell 文件语法检查通过;用例目录与实现评审校验通过。review 修复后,21 个 Table 与性能相关测试全部通过,包括成功与提前中止后逐字节验证原始证据不变、缺少原摘要时的分析步骤及失败传递。修改的 workflow 经 actionlint 校验无新增诊断,现有 smoke-testing/pf-testing 自定义 runner 标签及性能 workflow 的禁用条件保持原样。

已启动的 VM 对照复测固定使用上轮 395876ccd009848e67a01603e27c188f20d9b3d5 产物与测试提交 2ea3b24;运行期间保持测试代码不变,结果将单独补充。review 修复已通过本地回归并推送至 6e239ac。本 PR 未修复或认定服务端 503、命名空间锁超时、性能超时的内部原因。

关联:https://github.com/rustfs/backlog/issues/3173

Copilot AI balanced review requested due to automatic review settings November 10, 2026 02:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Reparsing overwrites the original execution ledger, losing abort status and timing evidence, while CI artifacts omit the source manifest needed to trace the tested source.

2 open issues
What changed in this PR

本 PR 改进全量复测的测试准备、活动窗口和容量保护,减少未完成真实验证却被计入成功的情况;不涉及服务端故障根因修复。

Changes:

  • 准备完整 Table smoke 源码并记录来源,按拓扑参与节点启动容错矩阵。
  • 增大 Rebalance 活动夹具并增加容量准入,为扩池写入增加快速采样与停止保护。
  • 完善性能逐轮结果、Shell 语法检查、回归测试及 CI 配置。
File Description
validation-migration-review.json 更新实现复核依据与文件哈希。
test_validation_pool.py 覆盖 Rebalance 活动窗口和容量准入。
test_storage_capacity.py 验证单盘容量与写入预留判断。
test_rustfs_table.py 验证完整源码准备及缺模块提前失败。
test_rustfs_pool_expand.sh 覆盖容量停止、清理及错误诊断。
test_rustfs_performance_testing.py 覆盖服务错误、超时与未执行记录。
test_rustfs_fault_tolerance.py 验证只启动拓扑参与节点。
test_check_shell_syntax.py 验证逐文件结果及 AppleDouble 排除。
scripts/​validation_pool/​pool_helpers.py 定义独立 Rebalance 活动夹具大小。
scripts/​validation_pool/​pool_behavior.py 增加容量准入和活动窗口结束诊断。
scripts/​storage_capacity.py 实现容量采样与写入停止决策。
scripts/​prepare_table_smoke.py 准备源码树并生成来源清单。
scripts/​check_shell_syntax.py 保存各 Shell 文件的语法检查结果。
rustfs-table-test.sh 在创建虚拟环境前检查本地模块。
rustfs-fault-tolerance-test.sh 按参与节点执行非阻塞启动。
rustfs_pool_expand.sh 增加容量保护并保留清理错误诊断。
rustfs_performance_testing.sh 排除含错误的成功轮次并记录完整台账。
docs/​suite-environment-retest.zh-CN.md 说明复测流程、配置及验收边界。
.github/​workflows/​validation-catalog-tests.yml 调整触发路径与依赖安装顺序。
.github/​workflows/​rustfs-table-test.yml 检出并准备匹配的 Table smoke 源码。
.github/​workflows/​package-install-tests.yml 纳入容量决策回归测试。
.github/​workflows/​environment-compatibility-tests.yml 接入统一语法检查及新增回归测试。

Review effort: Balanced

Comment thread .github/workflows/rustfs-table-test.yml Resolved
Comment thread rustfs_performance_testing.sh Resolved
@cxymds
cxymds merged commit 9e50637 into main Nov 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants