我们已将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
什么可能导致这些错误..?
答案 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。