【问题标题】:Azure Web Site Kudu Publishing failing with timeoutAzure 网站 Kudu 发布因超时而失败
【发布时间】:2016-06-10 03:24:05
【问题描述】:

我为我的 azure 部署定义了一个自定义部署脚本(*.sh 脚本)。

就在今天,我发现我无法发布。我更新了我的 bitbucket 存储库,过了一会儿我收到类似于以下内容的错误:

Command 'starter.cmd deploy_pvl_cont ...' was aborted due to no output nor CPU activity for 180 seconds. You can increase the SCM_COMMAND_IDLE_TIMEOUT app setting (or WEBJOBS_IDLE_TIMEOUT if this is a WebJob) if needed.\r\nstarter.cmd deploy_pvl_content.sh

我已经尝试了很多方法来尝试诊断问题。

  • 将 SCM_COMMAND_IDLE_TIMEOUT 增加到 300
  • 在本地运行脚本 (Works)
  • 设置一个新的部署槽并尝试发布相同的提交(相同的错误)
  • 尝试发布之前成功的提交(同样的错误)
  • 在诊断日志转储中寻找有用的错误消息(没有找到更有用的信息)
  • 尝试从 Kudu 控制台运行部署脚本(没有返回输出,就像它实际上没有运行一样)
  • 尝试按照@david-ebbo 的建议将 git 恢复到以前的版本
  • 尝试将我的脚本简化为具有相同结果的单个 echo 命令

不确定我能做些什么来进一步调试。理想情况下,我想在 azure 主机上获取 shell 脚本的输出,但不知道如何获取它。有什么想法吗?

【问题讨论】:

  • 在本机执行这个脚本需要多长时间
  • 在我的本地机器上大约需要一分钟。以前在 Azure 上发布需要 180 秒。注意:我刚刚编辑了我的问题,以表明我确实尝试增加 SCM_COMMAND_IDLE_TIMEOUT 并且虽然它等待的时间更长,但它失败并显示相同的消息。
  • 如果您能够找到触发此操作的特定命令并直接从脚本外部的 Kudu 控制台复制它,那将是隔离问题的好步骤(例如,请参阅 here) .你的脚本是批处理还是 bash?
  • 当它被卡住时,您还可以查看 Kudu Process explorer,它可能会指示它被卡在哪个进程中。另外,您可以直接分享您的 Web 应用程序名称还是 indirectly?这可能有助于我们调查。谢谢!
  • 嗨大卫,该网站是stage.pvlighthouse.com.au。我会尽快研究其他建议。

标签: azure kudu


【解决方案1】:

更新答案

这是由于迁移到 Azure 中的 git 2.8.x 导致的回归。该问题由https://github.com/projectkudu/kudu/issues/2041 跟踪。

这是一个非常简单的解决方法(您不需要需要引入旧的 git 工具):不要将 COMMAND 设置为 deploy_pvl_content.sh,而是将其设置为 bash deploy_pvl_content.sh

我们会解决这个问题,但这种解决方法会让您继续前进。

原始答案(仅留给上下文)

您可能会遇到 this issue 的一些问题,这是由于我们刚刚升级到 git 2.8.1 造成的。

虽然我们正在努力追根溯源,但请尝试以下解决方法,看看是否有帮助:

  • 转到 Kudu 控制台
  • 创建d:\home\bin 文件夹
  • 在那里复制旧的 Windows git 1.8.x 文件夹。您可以从here 获取内容。如果您将 zip 文件拖放到 Kudu 控制台中,则会有一个特殊的解压缩放置区域可以将其展开。
  • 再次尝试部署

【讨论】:

  • 很遗憾,这并没有解决问题。
  • 看进程资源管理器,挂在不退出的进程是 git-bash.exe ,子进程是 mintty.exe 。你让我安装的 zip 有 git.exe 但没有 git-bash.exe,不确定这是否相关。
  • 设法解决了一些问题。 git pull 在 kudu 控制台上工作得很好,它表明 repo 是最新的。我还能够使用bash .\deploy_pvl_content.sh 运行部署命令,并且在运行 kudusync 时它正确运行了所有步骤,直到最后。它得到了这个错误:Error: Could not find a part of the path 'D:\home\site\artifacts\manifest'. 我可以确认工件路径没有出现在 kudu 控制台中。
  • 刚刚尝试创建 artifacts 文件夹,但遗憾的是并没有解决问题。似乎解决了部分问题,但它遇到了另一个难以理解的异常。
  • 部署脚本在单独运行时表现不同,因为 env 未完全设置,这就是它尝试创建清单文件夹的原因(有关详细信息,请参阅脚本)。您要做的是从导致问题的脚本中找到单个命令,而不是运行整个脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多