Частые ошибки при запуске TFS-2013 с помощью git

У нас 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

Что может вызвать эти ошибки.?

Ответ 1

Кажется, что это ошибка, о чем свидетельствует этот поток:

Можете ли вы повторно протестировать RTM-версию VS2013 и попробовать еще раз? Кроме того, вы можете увидеть средство просмотра событий, чтобы узнать, есть ли какая-либо полезная информация или попробовать другие машины, как я упоминал выше.

Ответ 2

Я заметил, что когда проблема возникает, 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.