Сессия для этого агента уже существует

Я использую TFS для выполнения ночной сборки, включающей несколько шагов, в которых используется агент тестирования TFS. Я использую последнюю версию TFS/Test Agent(2015 - обновление 3), и в настоящее время нет других сборок. Часто (возможно, в половине случаев), когда выполняется ночное задание, шаг "Развертывание агента тестирования Visual Studio" завершается с ошибкой:

Задание было отменено, поскольку агент Agent-XXX не обновил блокировку. Убедитесь, что агент работает, не спит и не потерял связь со службой.

Это связано с ошибкой, найденной в файле журнала тестового агента (в _diag):

Сессия для этого агента уже существует. Спать в течение 30 секунд до следующей попытки.

Microsoft.TeamFoundation.DistributedTask.WebApi.TaskAgentSessionConflictException: агент задачи Агент-XXX уже имеет активный сеанс для владельца XXX.

Эта проблема прямо упоминается здесь, и косвенно обсуждается здесь.

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

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

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

Обновление 1

Я просто настроил сборку, которая запускается за 5 минут до моих основных тестов, запускающих скрипт Bat, чтобы перезапустить все мои серверы, на которых размещены мои тестовые агенты. Это обходной путь, но, похоже, он решает проблему. Надеюсь, когда-нибудь кто-нибудь сможет найти лучшее решение, чем это, но сейчас мне нужно запустить автоматическое тестирование в TFS.

Обновление 2

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

Обновление 3

Настал лучший день, я обновил TFS до 2018 года, и агент сборки до последней версии, эта проблема больше не возникает, я думаю, это ошибка в старом агенте сборки. У меня до сих пор нет решения для оригинальной версии агента сборки...

2 ответа

Похоже, что процесс Agent.Listener.exe выполнялся где-то на машине, возможно, как служба (а не сеанс пользователя, вошедшего в систему).

обратите внимание: если процесс агента внезапно завершается во время активного сеанса, сеанс в конечном итоге истечет по тайм-ауту (я думаю, через 5 минут). и при запуске, если агент сталкивается с конфликтом сеанса, он будет повторять попытку до 5,5 минут, я думаю, прежде чем сдаться (достаточно времени для истечения срока действия внезапно прерванного сеанса).

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

Я просто перезапускаю свой сервер и после этого открываю run.cmd, и моя проблема решена. Надеюсь, это сработает для вас.

Другие вопросы по тегам