使用git运行TFS-2013的频繁错误

时间:2014-03-07 07:02:13

标签: git tfsbuild tfs2013

我们已将TFS-2013配置为使用git存储库。大部分时间都可以正常工作,但我们会遇到间歇性的构建错误 - 随着时间的推移它们似乎变得越来越频繁。

这是我们在出现问题时可以在构建日志中找到的内容:

  

异常消息:libgit2引发了一个错误。类别= Os   (错误)。

     

无法删除目录。文件   'C:/Builds/1/MyTool/MyTool_CI/src/.git/objects/pack/pack_git2_a02380'   无法删除:进程无法访问该文件,因为它是   被另一个进程使用。

     

(输入LibGit2SharpException)

     

异常数据字典:

     

libgit2.code = -1

     

libgit2.category = 1

什么可能导致这些错误..?

2 个答案:

答案 0 :(得分:1)

这似乎是一个正在进行中的错误,如this thread所示:

  

您可以修复VS2013 RTM并重试吗?此外,你可以看到事件查看器,看看是否有任何有用的信息或尝试其他机器,如上所述。

答案 1 :(得分:1)

我注意到,当问题发生时, Process Explorer会显示来自TFSBuildServiceHost的打开文件句柄。 重新启动服务似乎是一种解决方法。

在我们为一个存储库中的不同分支引入多个构建之前,我们从未遇到过这个问题。然后有一天构建失败,异常:

Exception Message: Attempted to access an unloaded AppDomain. (type AppDomainUnloadedException)
Exception Stack Trace: 
Server stack trace: 
at LibGit2Sharp.Core.NativeMethods.git_clone(RepositorySafeHandle& repo, String origin_url, FilePath workdir_path, GitCloneOptions& opts)
at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts)
at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options)
at Microsoft.TeamFoundation.Build.Activities.Git.GitPull.GitClone.GetRepository(String repositoryUrl, String workingFolder, Boolean checkoutSubmodules)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

此后,问题开始不时出现,直到我重新启动TfsBuildServiceHost。 TFS 2013 U4。