Cruisecontrol зависает при проверке SVN на наличие модификаций - PullRequest
5 голосов
/ 26 октября 2009

После перенастройки сервера сборки Cruisecontrol на новую машину он иногда зависает на этапе "модификация набора" цикла сборки (он настроен на проверку изменений каждые 15 минут). Сам Cruisecontrol остается отзывчивым, только сборка не прогрессирует.

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

Это конфигурация системы:

  • Сервер Ubuntu 9.04, amd64, полностью обновлен
  • svn версия 1.5.4 (r33841) - самая последняя версия apt-get установит
  • Sun JRE 64 битная сборка 1.6.0_16-b01 - опять же, самая последняя версия
  • CruiseControl 2.7.3 (не самая последняя)

Вот так выглядят мои модификации.

<modificationset quietperiod="10">
    <veto><!-- there are several of these -->
        <triggers>
            <svn LocalWorkingCopy="${checkout_dir}/base" />
        </triggers>
        <buildstatus logdir="${log_dir}/base" />
    </veto>
    <timebuild time="2330" />
    <svn LocalWorkingCopy="${checkout_dir}/${project.name}" />
</modificationset>

Так что здесь можно сделать?

Редактировать: Вот выдержка из файла журнала cruisecontrol, показывающая зависание проекта A в 16:07 (оно все еще висит в 17:48)

2009-10-27 16:07:55,096 [Thread-38860] INFO  Project          - Project projectA:  bootstrapping
2009-10-27 16:07:55,096 [Thread-38860] INFO  ProjectController - projectA Controller: build progress event: bootstrapping
2009-10-27 16:07:55,262 [Thread-38862] INFO  ScriptRunner     - Buildfile: work/build-cruisecontrol.xml
2009-10-27 16:07:59,230 [Thread-38860] INFO  AntBootstrapper  - Bootstrap successful.
2009-10-27 16:07:59,230 [Thread-38860] INFO  Project          - Project projectA:  checking for modifications
2009-10-27 16:07:59,230 [Thread-38860] INFO  ProjectController - projectA Controller: build progress event: checking for modifications
2009-10-27 16:11:14,954 [Project projectB thread] INFO  Project          - Project projectB:  in build queue

Ответы [ 3 ]

2 голосов
/ 27 октября 2009

Еще одна идея. Вы всегда можете запустить CruiseControl JVM в режиме отладки. И всякий раз, когда он зависает, подключайтесь к нему с помощью некоторой IDE, например, Затмение. И тогда вы могли бы все потоки приложения CC, приостановить некоторые из них и посмотреть, чем они заняты.

1 голос
/ 27 октября 2009

Просто несколько указателей:

  1. Висит ли он в определенное время суток? Или это действительно случайно? Есть ли новые резервные копии, которые закрывают службу для резервного копирования?

  2. Вы сравнили config.xml нового круиз-сервера со старым (если предположить, что круиз-версия идентична на обоих, имеют ли они одинаковые задачи или есть что-то, что может замедлять задача доработки)?

  3. Расположены ли старые и новые машины в тех же сетях, что и ваши репозитории subversion (или, по крайней мере, они имеют одинаковое время отклика при доступе ко всем репозиториям проекта?) Учитывая, что сам круиз-сервер остается отзывчивым, не так ли Возможно, что конкретный репозиторий проекта, к которому он обращается во время почти зависания, слишком велик, слишком медлен или слишком много происходит в хранилище?

Это всего лишь указатели по устранению неполадок, поэтому они ни в коем случае не являются актуальными ответами на ваш вопрос. Возможно, именно так я и подойду к этой проблеме (помимо запуска команд вручную, как в ответе ГжегожОльдзки).

1 голос
/ 26 октября 2009

Вы пробовали вводить те же команды SVN вручную из командной строки? Виснет тогда?

...