gitlab-runner не работает в CI, работает вручную - выпуск-обновление Debian по ошибке? - PullRequest
0 голосов
/ 24 октября 2019

Некоторое время назад я установил gitlab-runner на сервере Debian 9. Все было хорошо. Я побежал, и он побежал успешно. Теперь, спустя 11 месяцев после того, как последний тест был запущен, я получил указание добавить функцию в проект, и первым делом я перезапустил старые тесты.

Они потерпели неудачу, превратившись из «без проблем» в «вообще ничего не работало» за 11 месяцев. Единственное, что я придавал значению, это обновление дистрибутива до Debian 10.

Не работает - работает локально под учетной записью службы gitlab-runner:

/tmp/projektv$ sudo -u gitlab-runner /usr/lib/gitlab-runner/gitlab-runner   exec shell run_tests
Runtime platform                                    arch=amd64 os=linux pid=25578 revision=1564076b version=12.4.0
Running with gitlab-runner 12.4.0 (1564076b)
Using Shell executor...
Running on simsrv15...
ERROR: Job failed: exit status 1
FATAL: exit status 1

Автоматические задания (при нажатиикоммиты) в webUI выглядят одинаково. Тот же результат с gitlab-runner версий 12.0 и 12.3. Без изменений с новой регистрацией.

Работает при локальном запуске с моей личной учетной записью:

/tmp/project$ /usr/lib/gitlab-runner/gitlab-runner exec shell run_tests
Runtime platform                                    arch=amd64 os=linux pid=23331 revision=1564076b version=12.4.0
Running with gitlab-runner 12.4.0 (1564076b)
Using Shell executor...
Running on simsrv15...
Fetching changes...
....
OK
System check identified no issues (0 silenced).
Destroying test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
Job succeeded

Запуск неисправного задания с --debug или даже strace не выявил ничего особенномне интересно. https://pastebin.com/8j8eQAHB

Выполнение одного и того же задания от другого участника, недавно настроенного в системе Debian 9, работает отлично.

1 Ответ

0 голосов
/ 30 октября 2019

Я обнаружил, что запуск strace -f автоматически подключается к порожденным детям. Поскольку я видел, что разветвление было одной из последних вещей, которые делал бегун, я попробовал это. И посмотри, что я нашел:

[pid 88504] execve("/usr/bin/clear_console", ["/usr/bin/clear_console", "-q"], 0x564cc4bbf1c0 /* 19 vars */) = 0

clear_console, а? Вооружившись новыми знаниями, Google дал мне следующее: https://gitlab.com/gitlab-org/gitlab-runner/issues/4559

Забавная вещь: Debian 9 также имеет clear_console в .bash_logout, где он не дает сбой бегуну ...

...