Назад | Перейти на главную страницу

Скрипт, запускаемый через пользователя Jenkins, убит

В нашей конфигурации сборки jenkins у нас есть следующие команды оболочки (Выполнить оболочку) в качестве последнего шага нашего процесса сборки.

echo "$USER"
echo "Script executed from: ${PWD}"
git submodule update --init --recursive
if [ -f composer.json ]; then
    /usr/local/bin/composer install
fi
sed -i 's/phpunit --bootstrap/\/usr\/local\/bin\/phpunit \-\-bootstrap/g' runtest
./runtest --config unittest/configure.conf --coverage /var/lib/jenkins/workspace/coverage/

Раньше все работало отлично, пока наш жесткий диск не был заполнен и jenkins не перестал строить. После очистки жесткого диска и повторной попытки сборки через jenkins последний шаг (Выполнить оболочку) не удалось выполнить со следующей ошибкой:

[project] $ /bin/sh -xe /tmp/hudson815776538860444797.sh
+ echo jenkins
jenkins
+ echo 'Script executed from: /var/lib/jenkins/workspace/project'
Script executed from: /var/lib/jenkins/workspace/project
+ git submodule update --init --recursive
error: git-submodule died of signal 9
Build step 'Execute shell' marked build as failure

Мы пробовали запускать команды оболочки от имени пользователя root, и все работает, как ожидалось. Однако, как только мы запускаем его как пользователь jenkins, процесс завершается в течение нескольких секунд.

[root@localhost project]# su -c "/bin/bash -x /tmp/hudson5288327457846724302.sh" -s /bin/sh jenkins
+ echo jenkins
jenkins
+ echo 'Script executed from: /var/lib/jenkins/workspace/project'
Script executed from: /var/lib/jenkins/workspace/project
+ '[' -f composer.json ']'
+ /usr/local/bin/composer install
Killed

Я проверил системные журналы /var/log/messages но не нашел подсказки. Что может вызвать проблему и как мы можем ее устранить?

В каком состоянии ваша машина, в частности память:

free -m

Это мог быть убийца OOM. Вы увидите журналы. Пытаться

grep -i “killed process” /var/log/messages