Произвольная ошибка при выполнении сценария оболочки в Jenkins - PullRequest
2 голосов
/ 15 мая 2019

У меня есть сервер jenkins, работающий на Ubuntu 16.04.2 x64, но недавно задания начали случайным образом давать сбой при выполнении сценария оболочки.Я могу выполнить сценарий вручную на сервере, и он работает, но при выполнении jenkins происходит сбой по следующим причинам:

Fail 1

JavaProcess leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
Build step 'Execute shell' marked build as failure

Fail2

# gradle script that downloads some jars..
Download https://jcenter.bintray.com/org/pegdown/pegdown/1.6.0/pegdown-1.6.0.jar
Build step 'Execute shell' marked build as failure
Skipped archiving because build is not successful

Это не всегда та же самая банка, которую не удается загрузить в Fail 2 .

Я пытался обновить jenkins до последней версии (2.164.2), но все еще та же проблема.

Я пробовал решения, упомянутые в Ошибка обработки дескрипторов файлов утечки на JENKINS для Ошибка 1 , но безуспешно, по-прежнему не удаетсяТаким же образом.


Обновление 1

Я локализовал проблему в моем сценарии оболочки для этой части:

# Run script in docker container
chmod +x tmp.sh
docker run --entrypoint=/bin/bash -v $(pwd):/src --workdir=/build mydocker/myimage -c "/src/tmp.sh"
rm -f tmp.sh

ИтакКогда Docker выполняет мой tmp.sh через Jenkins "Execute shell", он случайно завершается неудачей.

Журнал из Docker journalctl -u docker.service

May 21 10:33:23 jenkins dockerd[1332]: time="2019-05-21T10:33:23.886024261Z" level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"
May 21 10:33:25 jenkins dockerd[1332]: time="2019-05-21T10:33:25.186663914Z" level=error msg="attach: stderr: write unix /var/run/docker.sock->@: write: broken pipe"
May 21 10:33:25 jenkins dockerd[1332]: time="2019-05-21T10:33:25.186715731Z" level=error msg="attach failed with error: write unix /var/run/docker.sock->@: write: broken pipe"

Журнал из контейнера Docker docker container logs cranky_cori

BUILD SUCCESSFUL

Total time: 38.273 secs

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14/userguide/gradle_daemon.html

Заключение

Трубопровод к stdout и stderr разрывается, и jenkins сообщает об этом как о неудачномild, но в журналах Docker-контейнеров показано, что Docker продолжал выполняться и успешно завершил мой сценарий gradle.

1 Ответ

0 голосов
/ 21 мая 2019

После неудачного нахождения причины моей проблемы я подумал об обновлении моей ОС, и, парень, мне повезло!

Конфигурация не работает

Ubuntu 16.04.2 x64
----------------------------
- Docker version 17.03.1-ce
- Jenkins 2.64.2
NOR 
- Docker version 18.09.6
- Jenkins 2.64.2
- Jenkins 2.64.3

После обновления Ubuntu это сработало для меня

Ubuntu 18.04.2 LTS 
----------------------------
- Docker version 18.09.6
- Jenkins 2.64.3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...