在"将文件复制到丢弃位置"步骤后诊断TFS构建挂起

Bet*_*tty 9 tfs tfsbuild tfs2013

我需要一些关于如何诊断悬挂构建的建议.这只是在过去一两周内发生的,我有充分的理由怀疑这是我最近所做的事,而不仅仅是巧合

建立

  • TFS 2013
  • 4机器设置 - 2个应用程序层(在弃用其中一个的过程中),1个sql server,1个运行2个代理的构建服务器.
  • Build Controller与作业代理一起在第二个应用层上运行
  • 第一个应用程序层正在为该网站提供服务(虽然该机器将很快关闭,随着机器老化,所有内容都将传递到第二个应用程序层)

症状

  • 所有已执行的构建(似乎与哪个构建过程模板无关)永远不会标记为已完成,最后一步似乎始终是"将文件复制到删除位置"/"工作区和复制文件到删除位置"/"复制二进制文件以删除,重置环境"(在每个构建模板中以不同方式命名)
  • 这些文件似乎在build drop文件夹中成功删除
  • 查看任务管理器,似乎退出构建服务器上的所有构建过程(仅TFSBuildServiceHost
  • 构建在执行时显示正常的步骤/日志记录
  • 主要应用层在事件日志中包含相关警告(请参阅下面的警告)

近期变动

  • 在构建服务器上安装了Xamarin Android/iOS
  • 为Job Agent,Message Queue和Web Services安装了一些自定义的插件(多年来一直使用它们,因为应用程序层迁移导致它们在过去几周被禁用)
  • 安装了Tiago的任务板增强器(再次使用它已经很长时间了,最​​近才禁用它)
  • 大约一个月前,我们添加了第二个应用层,并将sql移到另一台机器上

我试过的

  • 重新启动应用程序层和构建服务器
  • 卸载Xamarin(虽然我怀疑某些部件仍在浮动,因为Bonjour服务似乎仍然安装)
  • 删除自定义插件
  • 在其中一个版本中启用了日志记录诊断功能 - 似乎没有任何特别感兴趣
  • 运行最佳实践分析器(没有太多不寻常的显示)
  • 多个构建过程模板(defaulttemplate,defaulttemplate.11.1,tfvctemplate.12.xaml)
  • 多个构建定义
  • 检查AppTiers和Build服务器的事件日志

Team Foundation服务主机请求监视器检测到以下情况:日期(UTC):3/02/2014 12:54:06 am机器:CODEBASE应用程序域:/ LM/W3SVC/1/ROOT/tfs-1-130357641583538280程序集:Microsoft.TeamFoundation.Framework.Server,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a; v4.0.30319服务主机:0dc282b5-59a8-4941-b541-a4f7d314cd0f进程细节:进程名称:w3wp进程ID:2508线程ID:2504

详细消息:服务主机XXXX的请求已执行37秒,超过警告阈值30.请求详细信息:请求上下文详细信息URL:/ tfs/XXXX/XXXX/_api/_build/stop?__ v = 4方法:ApiBuild .stop参数:uri = vstfs:/// Build/Build/34064用户代理:Mozilla/5.0(Windows NT 6.2; WOW64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/32.0.1700.102 Safari/537.36唯一ID:00000000 -0000-0000-0000-000000000000

Team Foundation服务主机请求监视器检测到以下情况:日期(UTC):30/01/2014 11:10:01 pm机器:CODEBASE应用程序域:/ LM/W3SVC/1/ROOT/tfs-1-130355232548668648程序集:Microsoft.TeamFoundation.Framework.Server,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a; v4.0.30319服务主机:0dc282b5-59a8-4941-b541-a4f7d314cd0f进程内容:进程名称:w3wp进程ID:70320线程ID:14540

详细消息:服务主机XXXX的请求已执行37秒,超过警告阈值30.请求详细信息:请求上下文详细信息URL:/tfs/XXXX/Build/v4.0/BuildService.asmx方法:StopBuilds参数: uris [0] = vstfs:/// Build/Build/34051 uris = Count = 1用户代理:Team Foundation(devenv.exe,12.0.21005.1,Premium,SKU:16)唯一ID:4d2d3213-fd41-4c4d-8ab0 -b87619c96a42

Team Foundation服务主机请求监视器检测到以下情况:日期(UTC):31/01/2014 3:14:17 am机器:CODEBASE应用程序域:/ LM/W3SVC/1/ROOT/tfs-1-130355232548668648程序集:Microsoft.TeamFoundation.Framework.Server,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a; v4.0.30319服务主机:进程细节:进程名称:w3wp进程ID:70320
线程ID:14540

详细消息:服务主机XXXX没有超过警告阈值30的活动请求.

一个快速的谷歌建议在tfs注册表中提高超时(http://xavierdilipkumar.com/post/2013/07/04/TFS-event-7005-and-7006-warning.aspx)我已经尝试过了,它没有似乎改变了什么.

Bet*_*tty 0

如果构建代理无法连接到端口 9191 上的构建控制器服务器,似乎也会发生这种情况。

可使用 telnet 客户端轻松测试。

看来我的服务器认为它位于未知网络上,并将防火墙踢入超速状态。(我第二次遇到这个问题,不确定这是否是我第一次遇到这个问题的原因,但这似乎是合理的)。