我需要一些关于如何诊断悬挂构建的建议。这只发生在过去一两周,我有充分的理由怀疑这是我最近做过的事情而不仅仅是巧合
设置
症状
最近的更改
我尝试过什么
Team Foundation服务主机请求监视器已检测到 以下条件:日期(UTC):3/02/2014 12:54:06 a.m. Machine: 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。 请求详情:请求上下文详细信息 网址:/ 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):2014年1月30日下午11:10:01机: 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。 请求详情:请求上下文详细信息 网址:/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 a.m.机器: 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)我已经尝试过了,它似乎没有改变任何东西。
答案 0 :(得分:3)
你可以查看
中的tfs bs日志吗?Event Viewer -> Applications and Services Logs -> Microsoft -> Team Foundation Server -> Build-Services -> Operational
这些超时通常与权限有关。你应该寻找TF215106访问被拒绝事件。虽然文件似乎在那里,但它们都是当前日期还是有一些具有不同(较旧)的日期?当文件丢失时,它们也会发生任何警报/步骤吗?
除此之外,它可能会超时,因为其中一个依赖项正被其他服务使用。
答案 1 :(得分:2)
您可以启动Sysinternals Process Monitor以查看进程实际退出的时间以及它们正在执行的操作(Process Monitor监视“实时文件系统,注册表和进程/线程活动”)。
答案 2 :(得分:1)
最佳操作方法是致电Microsoft支持并打开服务请求。确保它获得优先级A - 您的TFS生产环境不起作用 - 并准备好为他们提供支持和访问。
日志中唯一的提示是调用 ApiBuild.stop 。它表明构建工作流程已完成,因此托管它的代码正在回调AT以标记构建完成。由于之前的调用没有警告,因此在数据库级别可能存在一些问题。您可以尝试激活SQL跟踪,但这不是一项简单的任务,因为您应该能够将跟踪与工作跟踪进行比较。
祝你好运答案 3 :(得分:1)
我不愿意将此标记为答案,因为我不完全确定它为何有效。
怀疑构建机器出了问题我在新安装时创建了一个新的构建代理 - 挂起的问题仍然存在。
然后我在该机器上添加了一个Build Controller,并注意到使用该控制器的新版本将完成。这表明BA和BC之间或BA和主要AT之间存在沟通问题。
鉴于我们的主要AT有其他问题,我们决定将其从图片中删除,我们将DNS切换到指向第二个AT,并禁用旧主服务器上的所有服务。即时构建开始完成(包括已经停留数天的那些)。
我仍然不知道哪个组件被破坏或者为什么,特别是因为它在此配置中运行了一个月之前。我只能假设还有另一个我不知道的变化,或者主要AT的腐败导致了更大的问题。
答案 4 :(得分:1)
我们在这里遇到了同样的问题,即使在成功通过所有工作流程阶段之后,构建仍保持打开状态。
我登录到构建机器并注意到构建控制器由于某种原因“正在运行6个构建”,即使Visual Studio中的队列中根本没有构建。
重新启动控制器后,下一次构建第一次工作。
我想在这里作为一个可能的答案。我不确定为什么控制器会有那些卡住的版本。
答案 5 :(得分:0)
当一个活动试图在构建日志中记录一条巨大的消息(即CodePlex TFS Build Extensions项目中的FxCopCmd
活动)时,我遇到了这个问题。
构建代理将成功完成构建,但控制器必须将巨大的消息咀嚼到构建日志中,并且它正在静默崩溃/挂起。
我能够通过导航到C:\Users\[TfsServiceAccount]\AppData\Local\Temp\BuildAgent\[AgentNumber]\Logs\[BuildNumber]\ActivityLog.xml
来跟踪问题。
最后一个构建消息被截断,通过查看内容,我认识到了FxCop输出。在我的例子中,我只是为构建过程模板中的FxCop活动将LogToConsole参数设置为False,并且构建成功完成。
答案 6 :(得分:0)
如果构建代理无法连接到端口9191上的构建控制器服务器,也会出现这种情况。
使用telnet客户端轻松测试。
看来我的服务器认为它是在一个未知的网络上并将防火墙踢入了高速模式。 (我第二次遇到这个问题,不确定这是否是我第一次得到它的原因,但这似乎是合理的。)