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

4.5 KiB
Raw Blame History

清库部署测试记录

范围与状态

日期:2026 年 9 月 16 日。仅测试本机 D:\Desktop\Smail\yunx-test,使用正式构建包和嵌入前端,未启用开发模式或停用本机恢复通道。

  • [✓] 备份三份 SQLite 数据库和配置,校验备份后清空数据库对象,保留数据库文件。
  • [✓] 完整构建、部署及部署指纹校验通过。
  • 首轮通过浏览器完成数据库、超级管理员、域名、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 令牌,不通过绕过权限限制推进验收。

在具备权限的环境中重新完成初始化并确认服务稳定后,再验证登录、会话刷新和邮箱恢复。邮件恢复还需要确定实际可接收验证码的外部测试邮箱;验证码收到、恢复页面打开或接口返回成功均不单独构成完整验收。