Files
getDomain/docs/ops_center_runtime/HANDOFF_20260419_2053.md
Your Name 7cbde2aa78 d
2026-04-22 14:13:21 +08:00

3.4 KiB
Raw Permalink Blame History

HANDOFF_20260419_2053

更新时间2026-04-19 20:53 CST

本轮完成

  • 修复发布打包遗漏:
    • 最新发布包现在已包含 domainCheck/
    • 最新正式签收包:
      • domaincheck_release_20260419_205437
  • 修复发布任务观测性:
    • domain-api/app/services/ops_release_executor_core.py
      • 发布目录不可写时显式失败
      • 增加 ExecStartcurrent 软链对齐观测
    • 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