У меня машина с Windows 7 со старым Хадсоном, работающая в контейнере Glassfish.Это запускает сборку, управляемую длинным скриптом cygwin bash.Одна часть сценария содержит цикл:
if [ -d "$STASH_DIR" ]; then
svn status -v images | \
iconv -f cp1250 -t utf-8 | \
sed 's+\\+/+g' | \
grep '^ .*\.\(gif\|png\)$' | \
while read dummy rev author file; do
dat=${file%.???}.dat
if [ -f "$STASH_DIR/$dat.$rev" ]; then
cp -v "$STASH_DIR/$dat.$rev" "$dat"
fi
done || true # Not critical; ignore failures
fi
(Существует множество изображений и процесс, который работает с ними, и это очень медленно, поэтому я кеширую его результаты в отдельном каталоге. Процессвозможно, это можно сделать намного быстрее, но это уже другая проблема.)
Теперь время от времени зависает cp
, который где-то посередине списка файлов.Это идет в бесконечный цикл поедания процессора, и я должен убить его.Когда я это делаю, цикл продолжается, и сборка завершается нормально.Но так как это всего лишь кеш, если файл не скопирован, сборка все равно будет успешной.
Так что мой вопрос , какие варианты у меня есть для устранения неполадок ?Он работает как сервис под учетной записью SYSTEM, но у меня есть права администратора, поэтому я мог бы прикрепить что-то к нему.Я просто не знаю, что поможет.У меня есть Visual Studio там, и я могу установить там любые инструменты cygwin, но бинарный файл явно не собран с отладочной информацией.
Редактировать: Я пробовал:
resmon
не показывает ничего интересного, кроме того, что процесс работает на полной скорости. - Может быть интересно, что процессы сообщаются как
bash.exe
инструментами Windows, в то время как они /usr/bin/cp
согласноPS. Cygwin - Согласно отладчику (Visual Studio) процессы не имеют отладочной информации (ожидается) и выполняют код только из
cygwin1.dll
(только корневой фрейм), kernel32.dll
и ntdll.dll
;никакие фреймы не указывают на сам исполняемый файл. - Согласно
handle.exe
имеет только открытый файл журнала Glassfish (C:\glassfishv3\glassfish\domains\domain1\logs\jvm.log
), это рабочий каталог и C:\Windows
, и, кроме того, толькокуча объектов, называемых \BaseNamedObjects\
что-то .
Возможно, это не удается при попытке выполнить cp.exe
или когда он заканчивается, но я все еще не знаю, какпроверить / отладить.