【问题标题】:Waiting for an available agent / Waiting for an agent to be requested等待可用的代理/等待请求代理
【发布时间】:2016-11-30 05:43:38
【问题描述】:

(26.07.2016)我在 VM 中使用 TFS2015 Update3。 当我尝试通过 Web 界面或团队资源管理器对构建进行排队时,我得到以下信息。 然后我在 services.msc 中重新启动所有与 TFS 相关的服务,一段时间后它又开始工作了。

所以这种情况发生得太频繁了。

我有一个自定义池正在运行:

有没有办法调试这种行为?

检查日志文件

Link to Worker log file
Link to Agent log file

此处按此顺序发生异常:

  1. 检查工件目录是否存在C:\workspaces\agent\_work\2\a
  2. 删除工件目录
  3. System.ComponentModel.Win32Exception (0x80004005):目录不为空
    在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(字符串路径、布尔递归、布尔跟随节点)

奇怪的是,排队新构建大部分时间都有效,这种情况只是偶尔发生

可能是我在记事本中打开了该文件夹中的一个文件,并打开了许多选项卡。将观察此问题是否仍然存在并报告。

【问题讨论】:

  • 我已经看到当构建定义处于无效状态时会发生这种情况,即它被保存而没有验证错误,但配置的某些方面是错误的。一个具体示例是尝试在服务器路径映射中使用变量,例如$\myapp\$(branch) 在存储库选项卡下。这导致构建只是等待代理,这非常无益。我还没有找到调试它的方法。
  • 好的,但在我的情况下,构建代理正在工作,然后它像上面解释的那样挂起。然后我在我能找到的服务下重新启动每个 TFS 服务。关闭网页。排队一个新的构建,然后它会在一段时间后再次工作。我还经历过的是,有时它会挂起但构建在后台运行,我可以看到放置文件夹被填充。不确定这一点,也许我已经将多个构建一个接一个地排在队列中......很高兴知道从哪里开始挖掘......
  • 您检查了 \agent_diag 中的日志吗?那里有什么有用的信息吗?另外,请确保您的代理服务处于运行状态。
  • 在我的问题末尾添加了日志文件。现在我可以在日志中看到以下异常:出现DeleteDirectoryLongPathWin32ExceptionTaskCanceledException...
  • System.ComponentModel.Win32Exception (0x80004005): The directory is not empty

标签: tfs build tfs-2015


【解决方案1】:

如果这种情况是偶发的,那么它可能在工件中存在很长的路径:

C:\workspaces\agent_work\2\a

或者,有一个取消的构建导致工件目录被清理了一半,这暴露了清理中的错误。

2.x 代理不受长路径(网络核心)的限制,但仅适用于 2017+:

https://github.com/Microsoft/vsts-agent

我们可以进行故障排除,但最好使用 2.x 代理进入 2017+(2018 QU3 已发布)。

如果这不是一个选项,请给我发消息,我们可以深入研究我认为是取消/状态错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多