Почему все мои сборки не работают с сообщением «Генератор конфигураций работает дольше 120 секунд»?

Мы используем TeamCity для нашего CI-сервера, а недавно начали использовать его DSL на основе Kotlin для определения конфигураций сборки в коде и фиксации их в git.

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

Однако сегодня утром все сборки во всех проектах, а не только в новом проекте, выдают сообщения об ошибках. нравится: Не удалось применить изменения из VCS к настройкам проекта (версия c1a8904f01408c77d86794e9d276321ba11ae4d8): Генератор конфигураций работает дольше 120 секунд. Исправьте ошибки в VCS и повторите фиксацию. Эта ошибка генерируется в самом начале сборки, а остальная часть сборки, кажется, проходит успешно даже после ее создания.

Сообщение об ошибке не появляется в Google, и я не вижу ничего неправильного с котлином локально. Я сделал что-то не так в конфигурации моего проекта? Почему он работал вчера?

0
задан 3 March 2017 в 19:58
2 ответа

Ответ оказался связан с нашим решением виртуализации - AWS EC2 - и размером экземпляра нашего сервера TeamCity - t2.medium . Экземпляры T2 являются «пакетными», тогда как другие типы экземпляров, такие как экземпляр M4, являются «фиксированными».

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

Вот что случилось с нами. Очевидно, базовый уровень производительности был настолько медленным, что он не мог сгенерировать конфигурацию TeamCity из Kotlin за две минуты для наших очень скромных потребностей (7 конфигураций сборки в 3 проектах) на базовом уровне производительности, так что все сборки терпели неудачу.

Как только мы изменили наш сервер TeamCity, чтобы использовать более производительный размер экземпляра, TeamCity снова смогла быстро сгенерировать свою конфигурацию из Kotlin, и наша проблема была решена.

0
ответ дан 5 December 2019 в 08:32

В качестве альтернативы использованию более мощной машины вы можете увеличить тайм-аут на 120 секунд, установив для внутреннего свойства teamcity.versionedSettings.configsGeneratorTimeoutSeconds любое большее значение в секундах, перейдя к https://your.teamcity.instance/admin/admin.html?item=diagnostics&tab=properties, нажав Изменить внутренние свойства, а затем установив значение, например, teamcity.versionedSettings.configsGeneratorTimeoutSeconds=600.

0
ответ дан 25 May 2020 в 17:55

Теги

Похожие вопросы