TFS2010 и агенты отложенной сборки

У нас есть установка TFS2010 с одним контроллером и двумя агентами, работающими на одной машине сборки. Вчера сервер сборки перестал запускать две параллельные сборки и позволил одному агенту выполнять работу. Я попытался перезапустить контроллер и агентов, но без блокировки. Нет никакого шаблона, и оба агента выполняют работу - только по одному за раз. Сегодня я добавил новый агент (та же машина), и теперь он может собирать 2 параллельные сборки - все еще есть один ленивый агент. Есть предположения?

Новая информация: когда у меня есть 2 запущенных сборки и пара в очереди (NB, всего 3 агента) и я меняю приоритет на высокий - он начинает строиться на последнем агенте !?


person jaspernygaard    schedule 17.02.2012    source источник


Ответы (3)


Хорошо - значит, причиной была недопустимая запись в tbl_BuildQueue в базе данных TFS. Сборки с обычным приоритетом не будут создаваться в TFS 2010

Быстрое исправление - удалить записи в tbl_BuildQueue, у которых нет DefinitionId.

SELECT * FROM [Tfs_Default].[dbo].[tbl_BuildQueue] where DefinitionId not in (select DefinitionId from tbl_BuildDefinition)
person jaspernygaard    schedule 17.02.2012

Вы можете проверить следующее:

  • Настроены ли какие-либо из определений сборки для использования тегов агента или фильтров имени агента?
  • Настроены ли какие-либо агенты с помощью тегов? Вы можете проверить это в консоли администратора TF.
  • Проверьте статус каждого агента с помощью «Сборка» -> «Управление контроллерами сборки ...» из Visual Studio.
  • Проверьте статус каждого агента с помощью консоли администратора TF на агенте.
  • Сообщает ли консоль администратора TF какие-либо события за последние 24 часа?
person DaveShaw    schedule 17.02.2012
comment
Сборки не настроены на использование тегов, и ни один из агентов не имеет тегов. Состояние и для контроллера, и для агентов кажется нормальным - количество параллельных сборок для контроллера установлено равным количеству зарегистрированных агентов. Только события в журнале, это события перезапуска (Контроллер и агенты) - person jaspernygaard; 17.02.2012

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

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

   SELECT  * 
   FROM    tbl_BuildAgent ba 
   LEFT JOIN tbl_BuildAgentReservation bar 
   ON      bar.ReservationId = ba.ReservationId 
   WHERE   ba.ReservationId IS NOT NULL 
           AND bar.ReservationId IS NULL

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

Патрик

person Patrick Carnahan    schedule 17.02.2012
comment
Спасибо за уточнение. Я проверю это в понедельник. - person jaspernygaard; 19.02.2012
comment
Патрик, я пробовал ваш сценарий, но у меня нет записей с таким состоянием. Разве это не должно быть так? - person jaspernygaard; 20.02.2012