TFS2010 и ленивые агенты сборки - PullRequest
0 голосов
/ 17 февраля 2012

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

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

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

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

Быстрое исправление заключается в удалении записей в tbl_BuildQueue, которые имеют DefinitionId, который не существует.

SELECT * FROM [Tfs_Default].[dbo].[tbl_BuildQueue] where DefinitionId not in (select DefinitionId from tbl_BuildDefinition)
0 голосов
/ 17 февраля 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.После обновления этого столбца все новые сборки, поставленные в очередь после обновления, смогут использовать агента, который ранее был «ленивым», как вы его указали.

Патрик

0 голосов
/ 17 февраля 2012

Есть несколько вещей, которые вы можете проверить:

  • Настроено ли какое-либо из определений сборки на используемые теги агента или фильтры имени агента?
  • Настроены ли какие-либо агенты с тегами? Вы можете проверить это в TF Admin Console.
  • Проверьте состояние каждого агента, используя «Build» -> «Управление контроллерами сборки ...» из Visual Studio.
  • Проверьте состояние каждого агента с помощью TF Admin Console на агенте.
  • Сообщает ли консоль администратора TF о каких-либо событиях за последние 24 часа?
...