故障排查

故障排查: 部署失败

如何找到失败部署任务的日志、最常见的原因,以及如何用软重启重试。

先看哪里: 任务日志

每次部署都作为一个任务在队列中运行,每个任务都会保留日志。答案几乎总是在那份日志里。

  1. 打开 队列 页面。每个任务都会显示它的类型(部署、重启、升级、备份等)和一个状态标记: 待处理、运行中、进行中、已完成或失败。
  2. 找到失败的任务并打开它的 任务日志。日志会在弹窗中打开;对仍在进行中的任务,它每隔几秒实时刷新一次。
  3. 阅读日志的最后几行。报错通常出现在接近末尾的位置。

您也可以从实例内部查看同样的任务: 打开实例的 控制台,切换到 队列 标签页,那里会列出该实例最近的任务,并带一个刷新按钮。在那里点击某个任务,会打开同一个日志弹窗。

您自己就能解决的常见原因

  • 分支错误或缺失: 如果实例指向的分支名称在您的仓库中不存在(被重命名或删除了),代码就拉不下来。请检查仓库中的分支。
  • 模块升级期间的代码错误: 您插件中的 Python 错误或有问题的 XML 文件会中断升级。任务日志中的 traceback 会告诉您是哪个模块和哪个文件出错。修好代码,推送,然后重新部署。
  • 服务器离线: 如果服务器连不上,上面就没有任务能运行。重试之前,请先在 服务器 页面查看服务器的状态标记(在线或离线)。

重试

修好原因之后,用 软重启 重试: 在实例控制台中点击 重启,然后选择 软重启。这会重启 Odoo 并升级模块,所以失败的模块升级会用您修正后的代码再试一次。硬重启 重启的是 Docker 容器;当整个容器行为异常时才用它,而不是用来重跑模块升级。

重启本身会作为一个新任务出现在队列中,您可以用同样的方式跟踪它的日志。

何时升级处理

遇到以下情况请提交支持工单 (参见 提交支持工单):

  • 任务日志中的报错并非来自您自己的代码。
  • 任务长时间停留在待处理或运行中,日志里也没有任何进展。
  • 您已经修复了看得见的原因,同一次部署却仍然反复失败。

在工单中把问题类型设为实例(或服务器),关联对应的资源,并粘贴 任务日志 中的相关部分,尤其是最后几行。那份日志是您能提供的最有用的东西。

仍未解决?在应用中提交工单,或与工程师沟通