This commit is contained in:
parent
b47f366435
commit
fac4c45aac
@ -8,7 +8,9 @@
|
||||
|
||||
截至 11:32,47 服务器已部署 `review-421aa7303d3b`。本轮 60 包分批执行、958 个顶层用例通过;部署后内部 SMTP 五项真实入库、双库完整性及未认证接口边界通过。此结论不覆盖跳过项、容量、可信 TLS 或真实网页登录发信;部署和 SMTP 回归均保留数据,不满足 PROD-012 的清库安装要求。
|
||||
|
||||
截至 12:34,认证容量保护及前端可重试错误处理已通过指定远程回归,前端 23 个文件、182 项测试通过。本轮修改尚未部署,旧版 958 项结果不得作为新版全量通过的依据。生产容量、资源规划和正式浏览器验收仍未通过。
|
||||
12:39 已部署认证容量与前端重试版本 `review-d34ffdb7d1f6`。前端 23 个文件、182 项测试通过,旧版 958 项结果不得作为新版全量通过的依据。随后空数据副本通过正式初始化接口、HTTPS 登录、三协议授权码登录及中文附件收信,但真实 POP3 过载响应失败,不能将此前业务层测试等同于完整协议验收。
|
||||
|
||||
13:05,POP3 与 SMTP 错误分类修复的三包远程回归共 48 项通过,无跳过。候选版本 `review-b47f36643547` 正在进行部署前隔离验收,尚未替换线上程序;生产容量、资源规划和正式浏览器验收仍未通过。
|
||||
|
||||
## 任务状态
|
||||
|
||||
@ -25,11 +27,11 @@
|
||||
| PROD-009 | P1 | 备份与恢复演练 | [x] | 同机独立网络和挂载空间恢复、HTTPS、内部 SMTP 入库通过;异机恢复未演练 |
|
||||
| PROD-010 | P1 | 内部 SMTP 与部署后安全回归 | [✓] | 五项真实收信、双库、产物、未认证 API 均通过 |
|
||||
| PROD-011 | P1 | 全量测试、竞态、数据库兼容性和压测 | [~] | 60 包分批执行、958 个顶层用例通过;8 处跳过单列,竞态、真实跨库和容量验收未完成 |
|
||||
| PROD-012 | P1 | 最新版本清库首次安装验收 | [ ] | 当前为保留数据升级,不能沿用旧版本清库结果 |
|
||||
| PROD-012 | P1 | 最新版本清库首次安装验收 | [~] | 空数据副本正式初始化 API 和协议收信通过;候选程序复测及真实浏览器首次安装待验收 |
|
||||
| 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 参数;修复真实 POP3 响应被覆盖及 SMTP 错误凭据误报 454,48 项远程回归通过,候选程序过载复测进行中 |
|
||||
|
||||
状态含义:`[ ]` 未开始,`[~]` 进行中,`[x]` 已完成待复审,`[✓]` 指定范围复审通过,`[!]` 暂缓或存在阻塞。
|
||||
|
||||
|
||||
@ -396,3 +396,50 @@ TLS 前未公布 AUTH,主动尝试明文 AUTH 返回 523。未认证外域邮
|
||||
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。
|
||||
|
||||
本节完成指定范围的认证及前端回归,尚未构建部署新版本,未进行浏览器、容量、真实跨库或竞态验收。部署及首次安装仍需后续独立记录。
|
||||
|
||||
## 2026 年 9 月 17 日部署与协议完整响应整改
|
||||
|
||||
### 12:39 认证版本部署
|
||||
|
||||
前述 12:34 结论为部署前状态。随后从提交 `d34ffdb7d1f6` 构建并部署 `review-d34ffdb7d1f6`,双程序均使用 Go 1.26.6,构建时间为 `2026-09-17T04:38:27Z`,源码指纹为 `ad3d40bb626342e656fc7764181c038b2008adcfd512bf30347afc32f753ed37`。
|
||||
|
||||
| 项目 | 值 |
|
||||
| --- | --- |
|
||||
| 主程序 SHA-256 | `7086dfc4f7dccd9189ddb5a40af2b5ab215183db826aac8b6e1a44a5f58d5608` |
|
||||
| 管理工具 SHA-256 | `13b78ae80b2bb18dc9f507a9c7ca6788f20913236f35064182cb83e26e320932` |
|
||||
| 停服备份 | `/var/backups/smail-before-outbox-20260917-123901` |
|
||||
| 备份归档 SHA-256 | `b6d999da52391a8dc3a20144fc8fc5b3555ccc5b66c1171f0c1f5addaf18bcee` |
|
||||
|
||||
13:02 重新只读核验,线上产物摘要与上表相同,Smail PID `558992`、MySQL PID `549584`、Scert PID `530794`,重启计数分别为 0、1、0。双库完整性正常、迁移 23、队列为空、恢复 socket 为 `0600`,未认证用户信息及邮件列表业务码均为 403;12:39 以来新增 OOM 为 0。
|
||||
|
||||
### 空数据副本与失败发现
|
||||
|
||||
新增 `runtime_review.py` 和 `runtime_probe.py`,仅在指定远程服务器创建全新数据目录,不复制线上配置、密码、会话或邮件。副本使用独立网络与挂载空间、128 MiB 硬内存上限和 25% CPU;探测器限制为 48 MiB 和 25% CPU,禁止访问线上目录,启动前要求至少 272 MiB 可用内存。测试结束只停止本轮临时服务,保留数据和日志,不删除文件。
|
||||
|
||||
初始化通过正式接口完成,管理员密码仅保存在测试进程内存。协议登录使用完整邮箱和正式接口签发的授权码。两天有效的测试证书由客户端显式信任并校验主机名,不代表可信生产证书。
|
||||
|
||||
| 副本目录时间后缀 | 结果与边界 |
|
||||
| --- | --- |
|
||||
| `125343` | 启动器在子进程切换网络前检查导致失败,未执行业务测试;改为 `Type=exec` |
|
||||
| `125413` | 空库初始化、HTTPS 登录和会话通过;探测器误用短账号,SMTP 登录失败,改为完整邮箱 |
|
||||
| `125542` | 首次初始化、三协议授权码登录、内部 25 端口中文正文和附件入库通过;POP3 过载返回错误,整轮不通过 |
|
||||
|
||||
目录前缀均为 `/var/tmp/smail-review-runtime-20260917-`。`125542` 副本峰值为 84,414,464 字节,双库完整性正常,没有新增 OOM,线上服务 PID 未改变。此前 SMTP、IMAP 过载步骤已执行,但旧探测器只在整轮末尾写入汇总,不能用缺少逐轮证据的结果签署完整通过。
|
||||
|
||||
真实协议发现两个产品问题:POP3 的 `PASS` 处理将业务层繁忙错误统一改写为密码错误;SMTP 的普通错误被依赖库默认包装为 454,不能区分错误凭据和容量不足。提交 `b47f366` 已修复并推送:POP3 只对安全哨兵错误输出固定 `SYS/TEMP`,不回显任意内部错误;SMTP 错误凭据明确返回 `535 5.7.8`,繁忙保持 `454 4.7.0`。
|
||||
|
||||
### 修复后远程三包回归
|
||||
|
||||
测试二进制仅在本机交叉编译,执行位置为 47 服务器的受限 systemd 单元 `smail-tests-20260917-130448`。逐顶层用例运行,总计 48 项通过、无跳过,用时约 30.5 秒,峰值约 124.4 MiB。
|
||||
|
||||
| 包 | 顶层通过数 |
|
||||
| --- | --- |
|
||||
| `internal/gopop` | 4 |
|
||||
| `listen/pop3_server` | 7 |
|
||||
| `listen/smtp_server` | 37 |
|
||||
|
||||
日志目录为 `/var/tmp/smail-review-wire-20260917/results-20260917-130448`。新增用例覆盖真实 POP3 输出、包装错误、内部信息和换行注入隐藏、失败后认证恢复,以及校验证书的真实 SMTP STARTTLS 下 535、454、235 的区分。
|
||||
|
||||
启动前另有三次工具或环境失败:SSH 命令引号传递错误、可用内存低于 256 MiB 门槛被拒绝、Windows 归档解压后的三份测试程序缺少执行权限。均保留记录,前两次未启动用例,权限修正仅涉及明确的三份测试产物。没有降低内存门槛或停止其他服务。
|
||||
|
||||
候选程序已支持从受保护的暂存路径验收,校验 Linux ELF、SHA-256 和目录权限,测试后同时核对线上程序摘要及服务状态未改变。探测器逐轮保存过载证据,并新增真实 SMTP 错误凭据 535 断言。候选版本的隔离验收及部署结果待追加,不以三包回归代替全量或生产容量验收。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user