# 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`