【问题标题】:Build agent is unable to download available workspaces构建代理无法下载可用的工作区
【发布时间】:2018-06-13 07:40:41
【问题描述】:

我们最近将 TFS 从 TFS 2015 升级到 TFS 2018。我们将基础架构中的构建代理更改为新的代理版本 2.122.1

当开发人员提交他们的变更集或执行计划构建时,有时会按预期处理构建,但有时我们会在从 TFS 存储库检索源时收到奇怪的错误。

在构建日志中它们被记录为:

2018-01-03T15:01:25.6074314Z 查询工作区信息。

2018-01-03T15:01:26.5136788Z ##[error]XML 文档 (1, 1) 中存在错误。

如果我打开代理详细日志,我会得到以下信息:

[2018-01-03 15:01:25Z INFO ProcessInvoker] 启动进程:

[2018-01-03 15:01:25Z INFO ProcessInvoker] 文件名:'tf'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 参数:'vc 工作区 /格式:xml /集合:http://servername:8080/tfs/ProjectCollection/ /loginType:OAuth /login:.,******** /noprompt'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 工作目录: 'C:\Agent2017\_work\10\s'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 要求退出代码为零: '真'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 编码网站名称: windows-1252 ;代码页:'1252'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 强制终止进程 取消:'假'

[2018-01-03 15:01:25Z INFO ProcessInvoker] 进程开始于 进程id 3524,等待进程退出。

[2018-01-03 15:01:25Z INFO JobServerQueue] 尝试追加 1 批 web 控制台线,成功率:1/1。

[2018-01-03 15:01:25Z INFO JobServerQueue] 尝试上传 1 个日志文件 或附件,成功率:1/1。

[2018-01-03 15:01:26Z INFO ProcessInvoker] 已完成进程并退出 代码 0,经过时间 00:00:00.5240505。

[2018-01-03 15:01:26Z ERR StepsRunner] 从步骤中捕获异常: System.InvalidOperationException:XML 文档中存在错误 (1, 1)。 ---> System.Xml.XmlException: 根级别的数据是 无效的。第 1 行,位置 1。在 System.Xml.XmlTextReaderImpl.Throw(异常 e)在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() 在 System.Xml.XmlTextReaderImpl.ParseDocumentContent() 在 System.Xml.XmlTextReaderImpl.Read() 在 System.Xml.XmlReader.MoveToContent() 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTFWorkspaces.Read5_Workspaces() --- 内部异常堆栈跟踪结束 --- 在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader、字符串 encodingStyle、对象事件)在 System.Xml.Serialization.XmlSerializer.Deserialize(TextReader 文本阅读器)在 Microsoft.VisualStudio.Services.Agent.Worker.Build.TFCommandManager.d__31.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.Build.TfsVCSourceProvider.d__3.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.Build.BuildJobExtension.d__17.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.JobExtensionRunner.d__20.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.d__1.MoveNext() [2018-01-03 15:01:26Z INFO StepsRunner] 步骤结果:失败

代理似乎正在尝试获取可用工作区的列表,但它失败了。如果我尝试在运行代理的计算机上以适当的权限执行命令,我会得到正确的工作区列表。

【问题讨论】:

    标签: tfs build-agent


    【解决方案1】:
    1. 尝试使用system.debug = true 排队构建,您将在日志中获得更多信息。检查日志以获取详细的错误消息。
    2. 删除所有由构建过程创建的工作区,名称如下:VS/Team Explorer 中的 ws_1_2,并将 Get Source 任务中的 clean 选项设置为 true,然后再次尝试运行构建。

    【讨论】:

    • “干净”选项让我很开心!谢谢:)
    【解决方案2】:

    终于找到了我的问题here的答案。

    问题是由缓存的代理信息引起的,当我在构建机器上手动执行 vc workspaces /format:xml /collection:http://servername:8080/tfs/ProjectCollection/ 命令时,有时我得到了工作区列表,但有时我得到了警告和工作区列表(结果不是每次调用后预期相同,具体取决于缓存使用情况)。由于类似警告

    本地路径 C:\Agent2017_work\10\s 映射到工作区 ws_11_09;服务器 http://rwstfs:8080/tfs/ProjectCollection/ 上的 ProjectCollection 构建服务和工作区 ws_09_10;服务器 http://rwstfs:8080/tfs/ProjectCollection/ 上的 ProjectCollection 构建服务。从缓存中删除工作区 ws_09_10;ProjectCollection Build Service on server http://rwstfs:8080/tfs/ProjectCollection/。请删除冲突的映射。

    agent 无法解析 xml 文档,因为它前面是非 sgml 部分。

    所以我去了

    %LocalAppData%\Microsoft\Team Foundation\7.0\Cache

    目录,删除缓存内容,问题消失了。

    编辑: 另一种方法是使用命令删除缓存的工作区

    tf 工作区 /remove:*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2017-09-28
      • 2015-11-29
      • 1970-01-01
      相关资源
      最近更新 更多