Agent proxy.py 缺 @step 装饰器
frappe/agent上游源码proxy.py:334的reload_nginx()方法缺少@step装饰器。导致 Agent Job “Add Site to Upstream” 最后一步的状态追踪不更新,Site 卡在 Installing。
1. 归属
| 问题 | 答案 |
|---|---|
| 属于哪个仓库? | frappe/agent(上游),proxy.py 第 334 行 |
| 在容器内路径? | Agent 源码中 agent/proxy.py |
| 在构建链的哪一步? | Agent 执行 Add Site to Upstream Job 的最后一步 |
2. 功能解释
@step 装饰器做什么?
Agent Job 的执行分为多个 step。每次 step 完成后,Agent 向 Press 汇报”这一步成功了”。@step 装饰器标记的方法会自动触发这个汇报。没标记的方法执行了但不会汇报,Press 就认为 Job 还没完成。
实际影响:
站点实际 HTTP 200、frappe 正常运行——Agent 已经把 nginx 配置写好了、reload 了。只是没向 Press 汇报最后一步成功,Press 状态机等不到 Success,Site 永远显示 Installing。
3. 为什么不能修正
这是上游 frappe/agent 源码的 bug。可以加 Fix 7 修掉它,但:
- 每次合并上游要注意这个文件
- 修复的只是一行装饰器,但涉及上游代码改动
- 当前影响仅限 UI 显示,不影响实际功能
4. 缓解措施
部署完后检查站点实际访问(HTTP 200),不依赖 Press UI 的状态显示。