Частые ошибки при запуске 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.