This commit is contained in:
parent
461d8b2237
commit
d34ffdb7d1
@ -8,6 +8,8 @@
|
||||
|
||||
截至 11:32,47 服务器已部署 `review-421aa7303d3b`。本轮 60 包分批执行、958 个顶层用例通过;部署后内部 SMTP 五项真实入库、双库完整性及未认证接口边界通过。此结论不覆盖跳过项、容量、可信 TLS 或真实网页登录发信;部署和 SMTP 回归均保留数据,不满足 PROD-012 的清库安装要求。
|
||||
|
||||
截至 12:34,认证容量保护及前端可重试错误处理已通过指定远程回归,前端 23 个文件、182 项测试通过。本轮修改尚未部署,旧版 958 项结果不得作为新版全量通过的依据。生产容量、资源规划和正式浏览器验收仍未通过。
|
||||
|
||||
## 任务状态
|
||||
|
||||
| 编号 | 优先级 | 任务 | 状态 | 验收边界 |
|
||||
@ -27,7 +29,7 @@
|
||||
| PROD-013 | P0 | 共享主机资源隔离与容量 | [!] | 首轮测试期间发生全机 OOM,MySQL 被终止后自动重启;必须补齐资源规划 |
|
||||
| PROD-014 | P1 | 投递结果写库恢复 | [✓] | 12 项远程测试及源码复审通过;持久故障后的进程退出仍需人工核对,不代表生产故障演练通过 |
|
||||
| PROD-015 | P1 | 跨平台证书路径与插件测试 | [✓] | Linux 拒绝异平台路径误解析;保持证书校验、托管导入和插件目录权限要求 |
|
||||
| PROD-016 | P0 | 密码计算全局并发和过载处理 | [~] | 保留 Argon2id 64 MiB 参数,增加单计算名额、立即拒绝和可重试错误;远程回归待执行 |
|
||||
| PROD-016 | P0 | 密码计算全局并发和过载处理 | [✓] | 保留 Argon2id 64 MiB 参数;单计算名额、立即拒绝及前后端可重试错误的指定远程测试通过;不代表容量或部署验收通过 |
|
||||
|
||||
状态含义:`[ ]` 未开始,`[~]` 进行中,`[x]` 已完成待复审,`[✓]` 指定范围复审通过,`[!]` 暂缓或存在阻塞。
|
||||
|
||||
@ -75,3 +77,5 @@ SSH 脚本复用 `test/tools/remote_ssh.py`,强制核对已知主机密钥。
|
||||
`GOMEMLIMIT` 是 Go 回收目标,不是进程或主机硬限制。本轮协议测试以 128 MiB cgroup 上限、25% CPU 配额和 64 MiB Go 回收目标完成,不能据此推导生产容量。生产仍需确定同机服务预算、并发认证开销、邮件大小与吞吐上限、告警和故障恢复指标。
|
||||
|
||||
恢复服务整包执行曾在 128 MiB 上限触发测试 cgroup OOM,改为逐顶层用例独立进程后 14 项通过,峰值约 126.4 MiB。没有降低 Argon2id 的 64 MiB 内存参数;不能把拆分测试视为生产内存问题已解决。测试启动器默认 128 MiB,并对不存在的包、空清单和零匹配筛选返回失败;中断包保留运行中记录。
|
||||
|
||||
后续认证整改在整个进程内仅允许一个昂贵密码计算,满载立即返回可重试错误,不建立等待队列;HTTP 返回 503,SMTP 返回 454,IMAP 和 POP3 返回临时不可用。恢复服务不会把容量不足视为错误恢复码或消耗验证机会,前端不会因此清空输入或宣称链接失效。前端测试使用同样的独立网络和生产目录访问限制,128 MiB 硬上限下峰值约 73.7 MiB;测试通过不代表已测得生产可承载并发量。
|
||||
|
||||
@ -338,3 +338,61 @@ TLS 前未公布 AUTH,主动尝试明文 AUTH 返回 523。未认证外域邮
|
||||
新增测试工具在远程实际验证逐用例模式以及零匹配、错误包名两个拒绝分支。零匹配包结果记录码为 2,聚合进程返回 1;错误包名在启动用例前返回 2。此前外层检查误以为聚合进程也应返回 2,已按真实接口修正检查;没有修改程序掩盖失败。
|
||||
|
||||
本轮已完成投递结果恢复、跨平台路径修复、全包分批测试、旧备份隔离恢复和新版本升级回归。正式上线仍受凭据轮换、可信 TLS、真实网页及管理员恢复交互、共享主机容量和最新清库安装等门槛限制,不能签署生产放行。
|
||||
|
||||
## 2026 年 9 月 17 日认证容量与前端重试整改
|
||||
|
||||
### 代码与边界
|
||||
|
||||
修改前检查点及后端整改 `0177de8`、`b4f5f51`、`ce8285f` 已推送,前端整改提交为 `461d8b2`。本轮仍仅在 47 服务器执行测试,本机没有运行应用或测试。测试使用临时隔离数据库,不访问或清理线上业务双库,不能替代清库首次安装验收。
|
||||
|
||||
- Argon2id 保持 64 MiB、三轮、单并行度,不降低密码安全参数。整个进程只允许一个昂贵密码计算,满载立即拒绝而不排队。
|
||||
- HTTP 503、SMTP 454、IMAP UNAVAILABLE、POP3 SYS/TEMP 区分容量不足和真实凭据错误;恢复服务在容量不足时保留可重试凭证,不消耗验证机会。
|
||||
- 登录界面显示中文繁忙提示。管理员附加恢复面对临时服务错误或网络故障时保留输入和后续凭证,真实恢复码错误仍受五次前端上限约束。
|
||||
- 匿名恢复不再把临时服务故障误报为链接失效;网络异常明确提示结果尚未确认。成功完成后清空密码及恢复码。
|
||||
- 新前端执行器逐文件记录结果、保存失败日志、拒绝空测试,并在超时后终止对应进程组。
|
||||
|
||||
### 后端远程回归
|
||||
|
||||
测试使用 systemd 独立网络、私有临时目录、128 MiB 硬内存上限及 25% CPU 配额,禁止访问线上 `/opt/smail` 和 `/run/smail`。启动前检查可用内存,不自动扩大资源预算。最新五包回归耗时约 4 分 6 秒,峰值达到 128 MiB,但服务正常结束,没有新增 OOM。
|
||||
|
||||
| 测试包 | 顶层通过数 | 日志目录 |
|
||||
| --- | --- | --- |
|
||||
| password | 7 | `auth-20260917/results-20260917-115913` |
|
||||
| auth | 17 | `auth-20260917/results-20260917-120012` |
|
||||
| POP3 | 7 | `auth-fix-20260917/results-20260917-120628` |
|
||||
| SMTP | 36 | `auth-fix-20260917/results-20260917-120628` |
|
||||
| credentials | 8 | `auth-fix-20260917/results-20260917-120628` |
|
||||
| IMAP | 32 | `auth-fix-20260917/results-20260917-121012` |
|
||||
| controllers | 84 | `auth-final-20260917/results-20260917-121339` |
|
||||
| http_server | 65 | `auth-final-20260917/results-20260917-121339` |
|
||||
| adminreset | 21 | `auth-final-20260917/results-20260917-121339` |
|
||||
| recovery | 19 | `auth-final-20260917/results-20260917-121339` |
|
||||
| setup | 31 | `auth-final-20260917/results-20260917-121339` |
|
||||
|
||||
上述目录均以 `/var/tmp/smail-review-` 为前缀。最新 HTTP 包另有一项 `TestSecuritySetupBrowserFixture` 跳过,没有计入通过数。恢复服务初轮并发错误语义断言失败,修复后先后通过 18 项及扩展后的 19 项;保留初轮失败日志,不描述为一次性全通过。
|
||||
|
||||
最新后端测试归档 `auth-capacity-final-20260917.tar.gz` SHA-256:
|
||||
|
||||
```text
|
||||
5515943674f7ebd32e2b66cc020efb121634371c7ff2c1ab8f5212e9464630b9
|
||||
```
|
||||
|
||||
### 前端远程回归
|
||||
|
||||
使用官方便携 Node.js `v22.23.2` Linux x64,没有安装或替换服务器系统软件。23 个文件、182 项测试全部通过,无跳过;最终日志目录为 `/var/tmp/smail-review-frontend-auth-20260917/results-20260917-122844`。systemd 单元 `smail-frontend-tests-20260917-122843` 成功退出,用时约 36.8 秒,峰值约 73.7 MiB。
|
||||
|
||||
首轮 `122548` 因漏传既有 `test/review/protocol-frontend.test.mjs` 失败;补齐同版上下文文件后 `122657` 和最终 `122844` 均通过。旧日志保留,不把上传遗漏描述为产品缺陷,也不掩盖失败重跑。
|
||||
|
||||
| 归档 | SHA-256 |
|
||||
| --- | --- |
|
||||
| `node-v22.23.2-linux-x64.tar.xz` | `d60acfe00a2932254bb0ad20e01b0d74397a0875595de719654b214f4b03f307` |
|
||||
| `frontend-capacity-20260917.tar.gz` | `dae74c9c85689bb6cc24ef46e6c2460bf6a98e2caeb6e833383f753df2ba0b69` |
|
||||
| `frontend-capacity-context-20260917.tar.gz` | `8b420930b2a4cffeb88bdfab7317cca4c57553b17d63724b05b6a4f8d016424e` |
|
||||
|
||||
另一次便携 Node.js 下载超时产生的残缺文件未使用,也未删除。
|
||||
|
||||
### 部署前复核
|
||||
|
||||
12:34 再次只读复核,线上仍为 `review-421aa7303d3b`。Smail PID `552932`、MySQL PID `549584`、Scert PID `530794` 均运行,重启计数分别为 0、1、0;MySQL 的一次重启仍为此前事故记录。双库完整性正常、迁移版本 23、队列表为空、恢复 socket 为 `0600`,未认证用户信息和邮件列表均返回 403。11:18:09 后新增 OOM 为 0。
|
||||
|
||||
本节完成指定范围的认证及前端回归,尚未构建部署新版本,未进行浏览器、容量、真实跨库或竞态验收。部署及首次安装仍需后续独立记录。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user