Smail/docs/清库部署测试记录.md
smail 08b1f41350
Some checks are pending
Security Checks / security (push) Waiting to run
修复安装入口与监听启停竞态并记录清库验收
2026-09-16 19:54:25 +08:00

56 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 清库部署测试记录
## 范围与状态
日期:2026 年 9 月 16 日。仅测试本机 `D:\Desktop\Smail\yunx-test`,使用正式构建包和嵌入前端,未启用开发模式或停用本机恢复通道。
- [✓] 备份三份 SQLite 数据库和配置,校验备份后清空数据库对象,保留数据库文件。
- [✓] 完整构建、部署及部署指纹校验通过。
- [x] 首轮通过浏览器完成数据库、超级管理员、域名、DNS 展示和手动证书初始化;正式业务服务未就绪。
- [✓] 修复安装根地址认证探测失败,隔离浏览器直接访问根地址后自动进入中文安装向导。
- [✓] 修复 HTTP、HTTPS 全局实例在停止期间被清空而导致的崩溃;启动任务发布前同步准备实例,关闭已准备但尚未监听的实例也能正常退出。
- [✓] 全量自动回归与定向竞态检查通过。
- [!] 正式登录、刷新会话、普通用户及管理员邮件恢复、旧密码与旧会话失效实机验收未完成。
- [!] 超级管理员受保护本机恢复通道实机验收未完成。
## 实机证据
第一轮直接访问安装根地址出现“认证服务暂时不可用”。安装服务缺少 `/api/v1/user/info` 的初始化状态响应,前端未得到需要初始化的业务码。修复后,两个版本的认证探测路径均复用安装令牌和来源检查,只返回需要初始化状态,不执行账号或配置写入。
在全新隔离浏览器中访问 `http://127.0.0.1:5201/`,页面自动进入 `/#/setup?redirect=/`,显示中文六步安装向导,未再出现认证服务不可用。已查看页面快照和桌面截图;截图工具不允许写入当前工作区,因此截图仅保留在会话中,未声称落盘。
第一轮完成初始化后,Windows Named Pipe 在接受连接时返回 `Access is denied`,随后 HTTP 停止与启动并发导致空指针崩溃。最新构建重试相同权限环境后,保留明确权限错误并退出,未再发生空指针崩溃,监听端口已释放。
当前进程使用未提升的中等完整性令牌,管理员组仅用于拒绝检查。本机通道 ACL 仍限定 SYSTEM 与管理员,未放宽 ACL,未改成公开 HTTP 或 TCP 接口。
## 自动验证
- `go test ./listen/http_server ./res_init` 通过。
- `node test/run.mjs all` 通过:前端 166 项、部署 4 项以及全部后端包。部分未变更包使用 Go 测试缓存,不能据此认定受权限限制的 Windows IPC 用例已实机执行。
- `node test/run.mjs backend -race ./listen/http_server ./res_init` 通过。
- 新增覆盖:HTTP 和 HTTPS 停止先于监听、多个停止任务并发、HTTPS 准备失败清理 HTTP,以及安装状态接口的有效令牌、缺少令牌、来源限制、方法限制和初始化完成后拒绝访问。
- `git diff --check` 通过,仅存在仓库已有换行策略提示。
首次误将构建与回归并行调度,触发工作区锁且导致竞态测试读取不到正在移动的嵌入资源。已改用串行调度重跑并通过,此次失败不作为产品回归结论。
## 备份与日志
以下路径包含本地测试数据或配置,均为忽略的运行产物,不提交仓库:
- `test-log/live-20260916-1938/backup/`:清库前配置和数据库。
- `test-log/live-20260916-1938/reset-partition-config/`:归档的旧分区配置。
- `test-log/live-20260916-1938/before-retest/`:首轮初始化后、第二次清库前的配置和数据库。
- `test-log/live-20260916-1938/fresh.stderr.log`:原始崩溃证据。
- `test-log/live-20260916-1938/fixed.stdout.log` 与 `fixed.stderr.log`:修复后正式启动权限失败与退出证据。
- `test-log/live-20260916-1938/setup-retest.stdout.log`:最新安装向导进程日志。
- `test-log/run-2026-09-16T11-49-49-921Z-5240/`:成功的全量回归。
- `test-log/run-2026-09-16T11-51-52-136Z-29980/`:成功的竞态检查。
第二次清库后保留安装向导运行于 `127.0.0.1:5201`,数据库为空、配置未初始化,证书与业务密钥未删除。没有将旧账号备份恢复到当前运行库。
## 后续条件
后续正式流程需要符合项目部署要求的 Windows 权限环境或受支持的 Linux 部署环境。当前会话无法提供已提升的 Windows 令牌,不通过绕过权限限制推进验收。
在具备权限的环境中重新完成初始化并确认服务稳定后,再验证登录、会话刷新和邮箱恢复。邮件恢复还需要确定实际可接收验证码的外部测试邮箱;验证码收到、恢复页面打开或接口返回成功均不单独构成完整验收。