Дженкінс не виконує роботи (очікує на розгляд - чекає наступного виконавця)


77

Дженкінс не виконуватиме жодної роботи. Переглянувши це запитання , я вимкнув усі підлеглі вузли, але проста робота навіть не виконується на головному вузлі.

Що не так?

Відповіді:


78

Консоль адміністратора Дженкінса може працювати навіть із вузлом Master в автономному режимі. Це може статися, коли у Дженкінса закінчується місце на диску.

Для підтвердження зробіть наступне (з подякою geekride - jenkins-pending-waiting-next-available-executor):

  • перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes
  • вивчіть вузол "master", щоб перевірити, чи він не в мережі. Це може повідомляти, що на головному вузлі не вистачає місця на диску.

18
Подібна проблема трапилася і зі мною. Проблема полягала в тому, що я запустив кілька завдань, а кількість виконавців - 2 (за замовчуванням). Тож інші робочі місця перейшли до стану очікування. Я збільшив кількість виконавців, після цього він працює нормально
Амаль Г Хосе

Так, це була проблема.
Бумінда,

1
Рішення # 2 маркованої відповіді тут виправлена проблема для мене: stackoverflow.com/questions/23445457 / ...
trickpatty

зіткнувся з подібною проблемою, крім запропонованого тут рішення. Мені довелося перезапустити дженкіни. Без перезапуску, хоча пам’яті було недостатньо, завдання все одно застрягли
1818

У мене це вийшло: Керування Дженкінсом> Керування вузлами> Головний вузол> Налаштування> Використання: використовуйте цей вузол якомога більше
Д. Віссер

27
  • перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes
  • вивчити вузол "master" (натисніть на значок налаштування)

У моєму випадку кількість виконавців було встановлено на 0. Збільшено його і проблема виправлена.


Я щойно зрозумів, що кількість виконавців повинна бути не менше 2. Якщо ваш конвеєр збірки виконує будь-які інші команди збірки, вам знадобляться два виконавці: один для конвеєра, інший для команди збірки.
Містер Лама,

18

У моєму випадку у мене був наступний набір у моєму JenkinsFile

node('node'){ ... }

Не було вузла під назвою 'вузол', лише майстер (значення було залишено там після виконання деяких основних підручників). Змінивши значення на "master", збірка запрацювала.


Ах, дякую за це, я справді використовував вузол, якого не існує! Якщо в назві вузла є помилка, вона застряє назавжди!
GabLeRoux

6

Я зіткнувся з подібною проблемою, оскільки моєму майстру було встановлено "Залишити цю машину лише для пов'язаних робіт". Тож, незважаючи на те, що я відключив Раба, Дженкінс продовжував обходити Господаря, шукаючи щось інше.

Перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes і натисніть кнопку налаштування вашого головного вузла (схожа на викрутку та гайковий ключ). Перевірте Використання та переконайтеся, що в ньому вказано "Використовувати цього підлеглого якомога більше"


5

У моєму випадку це було спричинено кількістю виконавців (у мене було 1) та запуском роботи Дженкінса (проект) від Pipeline (мій сценарій конвеєра започаткував іншу роботу в Дженкінсі). Це спричинило тупик - мій трубопровід утримував виконавця і чекав своєї роботи, але робота чекала вільного виконавця.

Рішення може бути збільшенням # of executorsв Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node).


4

Я трохи запізнився з грою, але це може допомогти іншим.

У моєму випадку у мого майстра jenkins є спільний зовнішній ресурс, який виділяється для завдань jenkins за допомогою плагіна external-resource- dispecher . Через помилку JENKINS-19439 у плагіні (яка знаходиться в бета-версії), я виявив, що мій ресурс був заблокований попереднім завданням, але не був розблокований, коли попереднє завдання було скасовано.

Щоб дізнатись, чи ресурс зараз перебуває в заблокованому стані, перейдіть до відповідного вузла jenkins, Jenkins -> Manage Jenkins -> Manage Nodes -> master

Ви повинні побачити поточний стан будь-яких зовнішніх ресурсів. Якщо якісь з них несподівано заблоковані, це може бути причиною того, чому робочі місця чекають на виконавця.

Я не міг знайти деталей, як вручну вирішити цю проблему.
Перезапуск дженкінів не вирішив проблему.
Врешті-решт я пішов із жорстоким підходом:

  • Видаліть зовнішній ресурс
    (див. Jenkins -> Manage Jenkins -> Manage Nodes -> master -> configure)
  • Перезапустіть дженкіни
  • Повторно створіть зовнішній ресурс

3

У моєму випадку я помітив таку поведінку, коли в коробці не вистачало пам'яті (оперативної пам'яті), я перейшов до Jenkins -> Manage Jenkins -> Manage Nodes і виявив виняток, що не має пам'яті. Я просто звільнив трохи пам'яті на машині, і завдання почали надходити до виконавців.


3

У моєму випадку я щойно встановив плагін "Авторизувати проект" і неправильно налаштував стратегію в "Керувати Дженкінсом -> Налаштувати глобальну безпеку -> Контроль доступу для збірок" як "Запустити як анонімний". Отже, «анонімний» не мав права виконувати роботу.

Встановивши першу стратегію як "Запустити як користувача, який ініціював побудову", розблокували завдання в черзі.


2

Коротка відповідь: Виконайте всі завдання, які виконуються на майстрі.

У моєму випадку на майстрі було вивішено 3 робочі місця більше 10 днів, які були непоміченими. Зазвичай ми не виконуємо жодної роботи безпосередньо на господаря, все працює на рабах. Я вбив ці 3 робочі місця, які були повішені, автоматично виконавці раба почали підбирати робочі місця.

Слід зазначити, що, хоча ми маємо 8 рабів, лише 1 раб був у цьому постраждалому стані.

[EDIT] Ми знайшли відповідь на те, чому лише один раб був у цьому постраждалому стані. Коли раб Дженкінса падає, всі очікувані завдання автоматично передаються майстру. Всі 3 роботи, які я вбив, були від цього раба, тому, ймовірно, проблема зв’язку між господарем і цим конкретним рабом.


1

Для мене нижче рішення спрацювало.

Дженкінс -> Керувати Дженкінсом -> Керувати вузлами -> майстер -> налаштувати -> Властивості вузла -> Обмежити виконання завдань на вузлі - увімкнено та надано доступ певним користувачам. Я сам надав доступ, а потім робота почала працювати.

Якщо ввімкнено обмеження виконання завдань на вузлі , заплановані завдання не можуть запускатися.


1

У моєму випадку це схоже на @Michael Easter: Я отримав проблему на роботі через брак місця на диску. Я звільнив місце, перезапустив Дженкінса, але проблема все ще залишалася.

Рішенням було перейти до Jenkins -> Manage Jenkins -> Manage Nodes і просто натиснути кнопку, щоб оновити статус.


0

Що мені вдалося: нарешті я помітив вікно Status Executor Status зліва на головній інформаційній панелі Jenkins. Я запускаю екземпляр dev / test у своїй локальній системі з 2 виконавцями. Наразі обидва були зайняті збірками, які не працювали. Після скасування їх на робочих місцях моє третє (очікуване) завдання змогло запуститись.


0

Для мене я повинен перезапустити виконавці вручну. Клацніть на "Dead" у розділі "Build Executor Status" та натисніть кнопку перезапуску.


0

Я зіткнувся з подібною проблемою, оскільки моєму майстру було встановлено значення "# від виконавця (максимальна кількість одночасних збірок, які Дженкінс може виконувати на цьому агенті).

Перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes і натисніть кнопку налаштування вашого головного вузла (збільште кількість виконавців, щоб одночасно запускати безліч завдань).


0

У моєму випадку я повинен встановити Execute concurrent builds if necessaryв загальних налаштуваннях завдання.


0

Можливо, у вас встановлені етапи, і ваша робота не буде виконуватися до завершення попередньої роботи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.