diff --git a/doc/Linux生产流程测试记录.md b/doc/Linux生产流程测试记录.md index 6118fce..f405188 100644 --- a/doc/Linux生产流程测试记录.md +++ b/doc/Linux生产流程测试记录.md @@ -1135,3 +1135,29 @@ git diff --check - [x] `go test ./...`、`go vet ./...`、`git diff --check` 通过;新增指定地址与域名 SNI 回归测试。 - [~] 尚未重新部署本轮最新候选包;因此本节代码结果不能替代两台服务器的实机业务验收。 - [!] 第一台服务器仍需确认并通过真实 Nginx 站点配置、证书加载和独立 HTTPS 指纹校验;完整生产门禁继续未通过。 + +## 2026-10-01 部署锁获取失败事务终态修复记录 + +### 本轮结果 + +- 修复 `deployOne` 在创建部署事务后、锁获取阶段提前返回而未写入最终状态的问题。 +- 锁获取失败、锁归属写入失败、锁阶段持久化失败现在都会执行锁清理并写入 `rolled_back`;若锁释放无法证明或发生释放失败,则写入 `recovery_required` 并保留人工核查现场。 +- 新增两类真实代码回归测试:无锁持有时的锁冲突、部分锁持有时的锁冲突。 +- `go test ./...`:通过。 +- 代码提交:`1fad8db`;测试提交:`d315179`。 + +### 当前限制 + +- 本轮尚未使用最新提交重新构建并部署两台 Linux 服务器,因此本轮本地测试不能替代实机验收。 +- `8.137.23.95` 的 `recovery_required` 现场仍需重启候选服务后复核;`45.136.13.241` 的历史空锁目录只有在再次确认无 owner、无活动进程且属于历史测试现场后才允许清理。 +- 双服务器真实业务部署、失败恢复、重试幂等、三数据库、Windows、公网 DNS/ACME、SMTP、备份恢复和最终生产门禁仍未完成。 + +### 下一步 + +1. 构建包含本轮修复的最新 Linux amd64 候选包。 +2. 使用密码 SSH 部署到 `8.137.23.95` 和 `45.136.13.241`。 +3. 重启服务并复核恢复事务、锁 owner、Nginx 校验、reload 和 HTTPS。 +4. 通过正式页面重新执行一域名多服务器、多域名单服务器部署验证。 +5. 更新实机证据后再决定是否推进总体验收位置。 + +本轮未创建辅助验收脚本,未以辅助脚本作为验收条件。 diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 21693e7..d3db127 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -1461,3 +1461,15 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全 - [x] T6 整改主清单、执行清单和 Linux 测试记录已追加本轮代码证据。 - [ ] T7 三数据库、Windows 服务、清库初始化、公网 HTTPS/DNS/ACME、备份恢复和最终上线结论仍未完成。 - [!] 总体验收继续保持 **P0-03:完成,待复审**,不能以自动化测试或页面提示替代生产验收。 + +## 任务看板更新(2026-10-01) + +- [x] T2 部署事务锁获取失败终态修复:补齐锁冲突、锁归属写入失败和锁阶段持久化失败的事务收尾逻辑。 +- [x] T2 回归测试:新增无锁持有冲突和部分锁持有冲突测试,确认已有锁保留、本次锁释放、事务最终状态正确。 +- [x] T3 本地后端全量回归:`go test ./...` 通过。 +- [~] T4 最新候选包重新构建及双 Linux 服务器部署复核。 +- [~] T5 双服务器业务部署、失败回滚、重试幂等和恢复证据仍需使用最新候选包复审。 +- [ ] T7 三数据库矩阵、Windows 服务、清库初始化、公网 HTTPS/DNS/ACME、SMTP、备份恢复和最终上线结论。 +- [!] 总体验收不得升级,当前仍为 **P0-03:完成,待复审**。 + +本轮提交:`1fad8db`(代码修复)、`d315179`(回归测试)。 diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index dc47b73..5230663 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -2093,3 +2093,13 @@ P0-11 生产验收门禁 - [~] 进行中:重新构建并部署最新候选包,逐台复核两台服务器的真实 Nginx 站点、证书指纹和失败恢复。 - [ ] 未开始:三数据库生产矩阵、Windows 服务、公网 DNS/ACME、完整备份恢复及最终生产门禁。 - [!] 总体验收仍为 **P0-03:完成,待复审**,本轮不得新增 `[✓]`。 + +## 最新整改进度(2026-10-01) + +- [x] 已修复部署锁获取阶段的事务终态缺陷:取得部署锁失败、写入锁归属失败、保存锁阶段失败时,均会主动执行清理并写入最终事务状态。 +- [x] 已增加部署锁冲突回归测试,覆盖无锁持有和部分锁持有两种场景,验证已有锁不会被误删,本次锁会被清理,事务不会继续停留在 `pending`。 +- [x] `go test ./...` 已通过;本轮修复提交为 `1fad8db`,回归测试提交为 `d315179`。 +- [~] 尚未将包含本轮修复的最新候选包重新部署到两台 Linux 服务器,暂不能将实机恢复验收标记为通过。 +- [!] 总体验收位置仍保持 **P0-03:完成,待复审**;三数据库、Windows 服务、公网 DNS/ACME、SMTP、备份恢复及完整生产门禁仍未完成。 + +下一步:构建最新 Linux amd64 候选包,使用密码 SSH 部署到 `8.137.23.95` 和 `45.136.13.241`,复核事务恢复、锁释放、双服务器证书推送、Nginx 校验及 HTTPS 访问。