Недавно мы обновили TFS с TFS 2015 до TFS 2018. Мы изменили агент сборки в нашей инфраструктуре на новую версию агента 2.122.1.
Когда разработчики фиксируют свои наборы изменений или выполняется запланированная сборка, иногда сборка обрабатывается должным образом, но иногда мы получаем странную ошибку при извлечении источников из репозитория TFS.
В журнале сборки они записываются как:
2018-01-03T15: 01: 25.6074314Z Запрос информации о рабочей области.
2018-01-03T15: 01: 26.5136788Z ## [ошибка] Ошибка в XML-документе (1, 1).
Если открыть подробный журнал агента, я получу следующую информацию:
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Запуск процесса:
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Имя файла: 'tf'
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Аргументы: 'vc workspaces / format: xml / collection: http://servername:8080/tfs/ProjectCollection/ / loginType: OAuth /login:.,******** / noprompt '
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Рабочий каталог: 'C: \ Agent2017 \ _work \ 10 \ s'
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Требовать нулевой код выхода: 'True'
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Веб-имя кодировки: windows-1252; кодовая страница: '1252'
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Принудительное завершение процесса при отмене: 'False'
[2018-01-03 15: 01: 25Z INFO ProcessInvoker] Процесс запущен с идентификатором процесса 3524, ожидая выхода из процесса.
[2018-01-03 15: 01: 25Z INFO JobServerQueue] Попытайтесь добавить 1 пакет строк веб-консоли, процент успеха: 1/1.
[2018-01-03 15: 01: 25Z INFO JobServerQueue] Попытайтесь загрузить 1 файл журнала или вложения, процент успеха: 1/1.
[2018-01-03 15: 01: 26Z INFO ProcessInvoker] Завершенный процесс с кодом выхода 0 и прошедшим временем 00: 00: 00.5240505.
[2018-01-03 15: 01: 26Z ERR StepsRunner] Перехвачено исключение из шага: System.InvalidOperationException: в XML-документе (1, 1) есть ошибка. ---> System.Xml.XmlException: данные на корневом уровне недействительны. Строка 1, позиция 1. в System.Xml.XmlTextReaderImpl.Throw (исключение e) в System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () в System.Xml.XmlTextReaderImpl.ParseDocumentContent () в System.Xml.Impl.Text .Xml.XmlReader.MoveToContent () в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTFWorkspaces.Read5_Workspaces () --- Конец трассировки стека внутренних исключений --- в System.Xml.Serialization.XmlSerializer.Deserialize (XmlReader encoding xmlReader, XmlReader encoding xmlReader, , События объекта) в System.Xml.Serialization.XmlSerializer.Deserialize (TextReader textReader) в Microsoft.VisualStudio.Services.Agent.Worker.Build.TFCommandManager.d__31.MoveNext () --- Конец трассировки стека из предыдущего места, где исключение был брошен --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) в M icrosoft.VisualStudio.Services.Agent.Worker.Build.TfsVCSourceProvider.d__3.MoveNext () --- Конец трассировки стека из предыдущего места, где было выброшено исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System .Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) в Microsoft.VisualStudio.Services.Agent.Worker.Build.BuildJobExtension.d__17.MoveNext () --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) в Microsoft.VisualStudio.Services.Agent.Worker.JobExtensionRunner End of stack.d__20. из предыдущего места, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAnd DebuggerNotification (задача задачи) в Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.d__1.MoveNext () [2018-01-03 15: 01: 26Z INFO StepsRunner] Результат шага: сбой
Кажется, что агент пытается получить список доступных рабочих областей, но это не удается. Если я попытаюсь выполнить команду с соответствующими разрешениями на компьютере, на котором запущен агент, я получаю правильный список рабочих областей.