This commit is contained in:
Your Name
2026-04-22 14:13:21 +08:00
parent e0406b5d0e
commit 7cbde2aa78
145 changed files with 23086 additions and 2243 deletions

View File

@@ -0,0 +1,107 @@
# HANDOFF_20260419_2053
更新时间2026-04-19 20:53 CST
## 本轮完成
- 修复发布打包遗漏:
- 最新发布包现在已包含 `domainCheck/`
- 最新正式签收包:
- `domaincheck_release_20260419_205437`
- 修复发布任务观测性:
- `domain-api/app/services/ops_release_executor_core.py`
- 发布目录不可写时显式失败
- 增加 `ExecStart``current` 软链对齐观测
- `domain-api/app/node_agent.py`
- 增加 job 级兜底异常回写,避免任务假性卡死
- 将卡死的 worker 发布任务纠正为真实失败:
- `release_id = 6`
- `rollout_id = 5`
- `job_id = 204`
- 当前已从假 `running` 回正为 `failed`
- 本次失败对应的 Release 版本:
- `domaincheck_release_20260419_203933`
## 今晚新增关键结论
### 1. worker 发布失败的真实原因已明确
- `mainland-worker-01`
- node-agent 日志:
- `2026-04-19 20:40:15 [node-agent] loop error: [Errno 13] Permission denied: '/opt/domaincheck/downloads'`
- 对应发布任务:
- `job 204 = failed`
- `rollout 5 = failed`
- 当前失败原因已经正式回写:
- `install_root not writable: /opt/domaincheck/downloads`
### 2. mainland 两台节点都不符合当前 ReleaseHub 发布模型
- `mainland-worker-01`
- `domaincheck-worker` 当前启动路径:
- `/opt/domaincheck/domainCheck/detect_worker.py`
- `mainland-controller-01`
- `domaincheck-worker` 当前启动路径:
- `/opt/domaincheck/domainCheck/detect_worker.py`
这意味着:
- 当前线上服务不是跑在
- `/opt/domaincheck/current/domainCheck/...`
- 所以即使发布成功切了 `current` 软链
- 也不会自动让现有 systemd 服务切到新版本
### 3. worker 当前不是新版本高吞吐样本
- `mainland-worker-01`
- `Active since = 2026-04-19 18:18:50 CST`
- `Main PID = 635924`
- `CPU = 18.994s`
- 最近日志仍停留在旧代码行号:
- `_run_detect_register:2465`
- `detect_domain:2947`
- `start_redis_subscription:3590`
说明:
- worker 仍是旧进程
- 当前不能把它当成“已切新包并真实参与高吞吐”的有效证据
## 结论
当前唯一主阻塞不是前端、不是统计口径、也不是单纯并发参数。
当前唯一主阻塞是:
- mainland 节点 `deploy.release` 目录权限不满足
- mainland 节点 `domaincheck-worker` 的 systemd `ExecStart` 与 ReleaseHub 的 `current` 发布模型不一致
在这两个问题修正前:
- 不建议继续对 mainland 节点做正式 rollout
- 不建议继续把 worker 统计口径偏差当成纯展示层问题
## 下一步唯一建议
1. 先修 mainland 节点发布基座
- 让 node-agent 对 `/opt/domaincheck/downloads``/opt/domaincheck/releases` 有写权限
- 或明确改成一个 node-agent 真正可写的发布根目录
2. 再统一 `domaincheck-worker.service`
-`ExecStart` 指向 `/opt/domaincheck/current/domainCheck/detect_worker.py`
- 不再直指 `/opt/domaincheck/domainCheck/detect_worker.py`
3. 完成后重新发起:
- worker rollout
- 验证 PID 切换
- 验证代码行号切换到当前版本
- 再看吞吐和 CPU 利用率
## 本轮改动文件
- `package_domain_release.sh`
- `verify_domain_release.sh`
- `package_domain_release.ps1`
- `verify_domain_release.ps1`
- `domain-api/app/services/ops_release_executor_core.py`
- `domain-api/app/node_agent.py`
- `docs/ops_center_runtime/TASK_BOARD.md`
- `docs/ops_center_runtime/IMPLEMENTATION_STATUS.md`