Jenkins n’exécute pas de travaux (en attente – en attente du prochain exécuteur)

Jenkins n’exécutera aucun travail. Après avoir consulté cette question , j’ai désactivé tous les nœuds esclaves, mais un simple travail ne sera même pas exécuté sur le nœud maître.

Qu’est-ce qui ne va pas?

La console d’administration Jenkins peut être exécutée, même avec le nœud maître hors ligne. Cela peut arriver lorsque Jenkins manque d’espace disque.

Pour confirmer, procédez comme suit (avec merci à cet article ):

  • aller à Jenkins -> Manage Jenkins -> Manage Nodes
  • examinez le nœud “maître” pour voir s’il est hors ligne. Il se peut que vous signaliez que le nœud maître manque d’espace disque.

Dans mon cas, j’avais le set suivant dans mon JenkinsFile

node('node'){ ... }

Il n’y avait pas de nœud appelé ‘node’, seulement master (la valeur avait été laissée après avoir suivi quelques tutoriels de base). Changer la valeur en ‘master’ a permis à la construction de fonctionner.

  • aller à Jenkins -> Manage Jenkins -> Manage Nodes
  • examinez le nœud “maître” (cliquez sur l’icône de configuration)

Dans mon cas, le nombre d’exécuteurs a été fixé à 0. L’augmentation et le problème ont été corrigés.

Je suis un peu en retard au jeu, mais cela peut aider les autres.

Dans mon cas, mon maître jenkins possède une ressource externe partagée, qui est allouée aux tâches jenkins par le plug-in externe-resource-dispatcher . En raison du bogue JENKINS-19439 dans le plug-in (qui est en version bêta), j’ai trouvé que ma ressource avait été verrouillée par un travail précédent, mais n’était pas déverrouillée lorsque ce travail précédent a été annulé.

Pour savoir si une ressource est actuellement à l’état verrouillé, accédez au nœud jenkins concerné, Jenkins -> Manage Jenkins -> Manage Nodes -> master

Vous devriez voir l’état actuel de toutes les ressources externes. Si certains sont bloqués de manière inattendue, cela peut être la raison pour laquelle des travaux sont en attente d’un exécuteur.

Je n’ai pas trouvé de détails sur la façon de résoudre manuellement ce problème.
Redémarrer jenkins n’a pas résolu le problème.
Au final je suis allé avec l’approche brutale:

  • Supprimer la ressource externe
    (voir Jenkins -> Manage Jenkins -> Manage Nodes -> master -> configure)
  • Redémarrer jenkins
  • Recréez la ressource externe

J’ai rencontré un problème similaire car mon maître était défini sur “Laissez cette machine uniquement pour les travaux liés”. Donc, même si j’ai désactivé l’esclave, Jenkins continuait à contourner le Maître, cherchant autre chose.

Allez dans Jenkins -> Manage Jenkins -> Manage Nodes, et cliquez sur le bouton configure de votre nœud maître (qui ressemble à un tournevis et à une clé). Vérifiez l’utilisation et assurez-vous qu’elle est sur “Utiliser autant que possible cet esclave”.

Dans mon cas, j’ai remarqué ce comportement lorsque la boîte de mémoire était vide. Je suis allé sur Jenkins -> Manage Jenkins -> Manage Nodes et j’ai trouvé une exception de mémoire insuffisante. Je viens de libérer de la mémoire sur la machine et les travaux ont commencé à entrer dans les exécuteurs.

Dans mon cas, je venais d’installer le plug-in “Authorize Project” et de configurer la stratégie de manière incorrecte dans “Manage Jenkins -> Configure Global Security -> Access Control for Builds” en tant que “Exécuter en tant qu’anonyme”. Donc, «anonyme» n’avait pas le droit d’exécuter le travail.

La définition de la première stratégie en tant que “Exécuter en tant qu’utilisateur ayant déclenché la génération” a déverrouillé les travaux en attente.

Pour moi ci-dessous, la solution a fonctionné.

Jenkins -> Gérer Jenkins -> Gérer les nœuds -> master -> configure -> Propriétés des nœuds -> Limiter l’exécution des travaux au nœud – est activé et donne access à des utilisateurs spécifiques. Je me suis donné access et le travail a commencé à fonctionner.

Si l’ exécution des travaux de ressortingction sur le noeud est activée, les tâches planifiées ne peuvent pas être exécutées.

Dans mon cas, cela était dû au nombre d’exécutants (j’avais 1) et à l’exécution de Job (Projet) Jenkins depuis Pipeline (mon script de pipeline a démarré d’autres travaux dans Jenkins). Cela a provoqué une impasse – mon pipeline était un exécuteur et attendait son travail, mais le travail attendait un exécuteur libre.

La solution est peut-être en train d’augmenter # of executors dans Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node) .

Ce qui a fonctionné pour moi: j’ai finalement remarqué la fenêtre Build Executor Status à gauche du tableau de bord principal de Jenkins. Je lance une instance de développement / test sur mon système local avec 2 exécuteurs. Les deux étaient actuellement occupés par des builds qui ne fonctionnaient pas. Après avoir annulé ces tâches, mon troisième travail (en attente) a pu être exécuté.

Pour moi, je dois redémarrer les exécuteurs manuellement. Cliquez sur “Dead” sous “Build Executor Status” et appuyez sur le bouton de redémarrage.

J’ai rencontré un problème similaire car mon maître était défini sur “# of executor (Le nombre maximum de builds simultanés que Jenkins peut exécuter sur cet agent).

Accédez à Jenkins -> Manage Jenkins -> Manage Nodes, puis cliquez sur le bouton configure de votre nœud maître (augmentez le nombre d’exécuteur pour exécuter plusieurs tâches à la fois).

Dans mon cas, il est similaire à @Michael Easter: j’ai eu un problème dans un travail en raison d’un manque d’espace disque. J’ai libéré de l’espace, j’ai redémarré Jenkins mais le problème persiste.

La solution consistait à aller sur Jenkins -> Manage Jenkins -> Manage Nodes et à cliquer sur le bouton pour mettre à jour le statut.