Агент сборки не может загрузить доступные рабочие области

Недавно мы обновили 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] Результат шага: сбой

Кажется, что агент пытается получить список доступных рабочих областей, но это не удается. Если я попытаюсь выполнить команду с соответствующими разрешениями на компьютере, на котором запущен агент, я получаю правильный список рабочих областей.


person Rudolf Dvoracek    schedule 03.01.2018    source источник


Ответы (2)


  1. Попробуйте поставить в очередь сборку с system.debug = true, и вы получите больше информации в журнале. Проверьте журнал, чтобы получить подробное сообщение об ошибке.
  2. Удалите все рабочие области, созданные в процессе сборки, как следующее имя: wssystem.debug = true2 в VS / Team Explorer, и установите для параметра очистки в задаче «Получить исходный код» значение true, затем попробуйте снова запустить сборку.
person Cece Dong - MSFT    schedule 04.01.2018
comment
Чистый вариант сделал мой день! Спасибо :) - person IngoB; 30.03.2018

Наконец, я нашел ответ на свою проблему здесь.

Проблема была вызвана кэшированной информацией агента и когда я вручную запускал vc workspaces / format: xml / collection: http://servername:8080/tfs/ProjectCollection/ на машине сборки, иногда я получал список рабочих областей, но иногда я получал предупреждение плюс список рабочих областей (результат не ожидается одинаковым после каждого вызова в зависимости от использования кеша). Из-за предупреждения вроде

Локальный путь C: \ Agent2017_work \ 10 \ s отображается как в рабочей области ws_11_09, так и в службе сборки ProjectCollection на сервере http://rwstfs:8080/tfs/ProjectCollection/ и рабочая область ws_09_10; Служба сборки ProjectCollection на сервере http://rwstfs:8080/tfs/ProjectCollection/. Удаление рабочей области ws_09_10; ProjectCollection Build Service на сервере http://rwstfs:8080/tfs/ProjectCollection/ из кеша. Удалите конфликтующие сопоставления.

Агент не может проанализировать XML-документ, потому что ему предшествует часть, отличная от sgml.

Итак, я пошел в

% LocalAppData% \ Microsoft \ Team Foundation \ 7.0 \ Cache

каталог, содержимое кеша удалено, и проблема исчезла.

РЕДАКТИРОВАТЬ: альтернативным способом может быть удаление кешированных рабочих пространств с помощью команды

tf рабочие области / удалить: *

person Rudolf Dvoracek    schedule 04.01.2018