Hudson останавливает/отменяет сборку, оставляя процессы позади

У нас есть автоматизированная сборка под управлением Hudson (1.312), в которой есть несколько слоев. О рабах:

  • codewarrior cc/ld и другие инструменты (некоторые собственные), запускаются
  • несколько рекурсивных экземпляров Cygwin GNU делают экземпляры 3.81, управляемые
  • Hudson «выполнить пакетную команду Windows» (насколько я могу судить, cmd.exe запускает пакетный файл, который создает hudson), запускается
  • Служба Hudson, работающая от имени пользователя домена (не LocalService), запущена
  • компьютер с Windows XP (32-разрядная версия)

Мастер - это машина OSX, на которой работает стандартный Tomcat.

Проблема: кнопка «отменить сборку» (маленький красный крестик, ведущий к URL-адресу «стоп») не удаляет make или какой-либо из его подпроцессов. Что касается пользовательского интерфейса Hudson, задание успешно остановлено, но процессы make.exe и cc/ld продолжают выполняться. Это может вызвать серьезные проблемы, если сборка снова начнется в той же рабочей области.

Есть ли «лучшая практика» для отключения всех этих процессов?

(Прежде чем кто-либо предложит менее франкенштейновскую структуру управления сборкой, такую ​​как ant, jam, maven и т. д., мы переходим на jam, довольно успешно! Пока мы разбираемся с перегибами, нам нужно иметь сборки, которые можно убить в текущей системе. , хотя.)


person leander    schedule 16.07.2009    source источник
comment
Какую версию Хадсона вы используете?   -  person Michael Donohue    schedule 17.07.2009
comment
@Michael: обновлено, чтобы указать 1.312. Только что обновился до 1.315 сегодня утром, но с тех пор не тестировал kill, сообщу результаты, когда у меня будет возможность.   -  person leander    schedule 18.07.2009


Ответы (1)


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

person Kohsuke Kawaguchi    schedule 16.07.2009
comment
Конечно вещь. Надеюсь, завтра я что-нибудь придумаю; У меня есть некоторая информация о procexp и procmon от Sysinternals, которую может быть полезно включить. - person leander; 17.07.2009
comment
Kohsuke, я работаю над плагином bazaar scm для hudson, и у меня похожая проблема. Нет ли способа прослушать событие отмены? Там, позволив плагину выполнить некоторую работу по очистке. Может быть, и метод addListener в класс SCM? - person Craig; 18.07.2009
comment
Ваш плагин получает InterruptedException, если пользователь отменяет сборку. Используйте это как сигнал, чтобы сделать некоторую работу по очистке. - person Kohsuke Kawaguchi; 21.07.2009
comment
Конечно, я больше не могу его воспроизвести; возможно, было обновление с 1.312 до 1.315. Я свяжусь с вами и воспользуюсь системой отслеживания проблем, если она появится снова — большое спасибо за ответ! - person leander; 21.07.2009