Files
getDomain/docs/新机器接手交接_20260427.md

4.7 KiB
Raw Blame History

新机器接手交接

1. 目标

这次不是继续在当前机器上排障,而是:

  • 把当前代码整理后提交到 Git
  • 在新服务器上重新部署验证
  • 让新的 Codex 接手继续推进

当前最重要的未完成主线只有一条:

  • domain-api/app/services/sync_push_service.py_load_pushable_projections() 的修复,需要在远端稳定部署后验证:
    • detect_result_projection push 是否恢复
    • detect_result_ingest 是否出现

2. 当前代码结论

已经确认并完成的代码侧修复:

  • domain-api/app/services/sync_push_service.py
    • 修复 _load_pushable_projections() 选择逻辑
    • 旧问题:最新 detect_result_projection 明明存在且没有 push attempt但候选集为空
    • 现修复:候选改为优先按最新 projection 选择
  • domain-api/tests/test_sync_push_service.py
    • 已补回归测试

本地验证已完成:

  • py_compile 通过
  • python -m unittest tests.test_sync_push_service 通过

3. 当前卡点

不是代码不清楚,而是当前远端 SSH 不稳定:

  • 121.204.244.188:22 TCP 可连接
  • 但 SSH banner 经常超时
  • Paramiko 常见报错:
    • SSHException('No existing session')
    • Error reading SSH protocol banner

因此当前没有拿到“远端已发布并生效”的硬结果。

4. 新机器接手后的首要动作

新机器接手后,先不要扩散排查面,只做这一个最小动作:

  1. 发布 domain-api/app/services/sync_push_service.py
  2. 重启 domaincheck-sync-agent.service
  3. 只验证两项:
    • detect_result_projection push 是否恢复
    • detect_result_ingest 是否出现

5. 关键背景

项目根目录:

  • /www/wwwroot/getDomain

主要子目录:

  • domain-api/
  • domain-web/
  • domainCheck/
  • docs/

当前远端主机:

  • mainland-controller-01
  • 121.204.244.188

已确认的远端运行时 region 配置:

  • NODE_REGION=mainland
  • SYNC_SOURCE_REGION=mainland
  • SYNC_TARGET_REGION=overseas

已确认的数据事实:

  • mainland 本地已经生成了 detect_result_projection
  • surrogate job 例如:
    • job_id=909
    • job_code=sync-overseas-28618
  • worker 事件已写入 mainland 本地库
  • 真正未打通的是 detect_result_projection 的 push 选择阶段

6. 建议提交范围

建议优先提交真正的代码改动,不要把运行产物一起带上。

建议提交:

  • domain-api/
  • domain-web/
  • domainCheck/
  • tools/
  • 需要保留的文档 .md

建议重点确认本次必须包含:

  • domain-api/app/services/sync_push_service.py
  • domain-api/tests/test_sync_push_service.py

7. 明确不要提交的内容

以下属于运行产物、临时文件或本地探针,不建议提交:

  • docs/ops_center_runtime/night_runs/step_mix_*/
  • docs/ops_center_runtime/chinaz_gray_runs/
  • docs/_tmp_regression/
  • .codex-release-probe.txt
  • *.bak_*
  • *.log
  • *.pid

当前工作区里特别要排除的项目:

  • domainCheck/app/utils/database.py.bak_20260426_220818_active_job_cache_tune
  • domainCheck/detect_worker.py.bak_20260426_220818_active_job_cache_tune
  • docs/ops_center_runtime/night_runs/step_mix_20260426_051718_smoke_p200/
  • docs/ops_center_runtime/night_runs/step_mix_20260426_051754_smoke_p200/
  • docs/ops_center_runtime/night_runs/step_mix_20260426_052641_debug_stepmix/
  • docs/ops_center_runtime/night_runs/step_mix_20260426_053252_mainland_step_mix_p200_t800/
  • docs/ops_center_runtime/chinaz_gray_runs/
  • .codex-release-probe.txt

8. 已跟踪但不建议把这次删除提交进去的文件

这些文件目前显示为已删除,但更像本地运行态/配置文件,不建议在这次“迁移到新服务器”的提交里带上删除:

  • domainCheck/app/thread_count.json
  • domainCheck/node_thread_counts.json
  • domainCheck/runtime/runtime_settings.json
  • domainCheck/runtime/sensitive_words.json
  • domainCheck/runtime_settings.json
  • domainCheck/thread_count.json

处理建议:

  • 如果这些删除不是你明确想做的配置收口,请在提交前恢复
  • 不要把“本地运行时删掉了某个 JSON”误当作产品代码改动提交

9. 提交前建议

提交前建议至少做这几步:

  1. git status --short
  2. 把运行产物和备份文件排除掉
  3. 只保留代码、测试、必要文档
  4. 单独复查:
    • sync_push_service.py
    • test_sync_push_service.py
    • .gitignore
    • 本交接文档

10. 给新机器上的 Codex 的一句话

接手后不要重新发散排查 worker、projection 生成、事件落库链;这些已经基本收敛。优先完成 sync_push_service.py 的远端生效验证,只盯:

  • detect_result_projection push
  • detect_result_ingest