webentwicklung-frage-antwort-db.com.de

Jenkins führt keine Jobs aus (ausstehend - wartet auf den nächsten Executor)

Jenkins führt keine Jobs aus. Nachdem ich diese Frage gesehen habe, habe ich alle Slave-Knoten deaktiviert, aber ein einfacher Job wird nicht einmal auf dem Master-Knoten ausgeführt.

Was ist falsch?

52
Michael Easter

Die Jenkins-Administrationskonsole kann auch mit dem Masterknoten offline ausgeführt werden. Dies kann passieren, wenn Jenkins nicht mehr genügend Speicherplatz zur Verfügung steht.

Um dies zu bestätigen, führen Sie folgende Schritte aus (danke an geekride - Jenkins - pending-waiting-for-next-available-executor):

  • gehe zu Jenkins -> Jenkins verwalten -> Knoten verwalten
  • Überprüfen Sie den "Master" -Knoten, um zu sehen, ob er offline ist. Möglicherweise meldet es, dass der Master-Knoten nicht über genügend Speicherplatz verfügt.
57
Michael Easter

In meinem Fall hatte ich folgendes Set in meiner JenkinsFile

node('node'){ ...}

Es gab keinen Knoten mit dem Namen 'node', nur Master (der Wert wurde dort nach einigen grundlegenden Tutorials gelassen). Wenn Sie den Wert in "master" ändern, wurde der Build funktionsfähig.

16
eversMcc
  • gehe zu Jenkins -> Jenkins verwalten -> Knoten verwalten 
  • untersuchen Sie den "Master" Knoten (Klicken Sie auf das Symbol "Konfigurieren".)

In meinem Fall wurde die Anzahl der Ausführenden auf 0 ..__ festgelegt. Die Anzahl wurde erhöht und das Problem wurde behoben.

13
PAVITRA

Ich bin etwas spät dran, aber das kann anderen helfen.

In meinem Fall hat mein Jenkins-Master eine gemeinsam genutzte externe Ressource, die vom External-Resource-Dispatcher-Plugin für Jenkins-Jobs zugewiesen wird. Aufgrund des Fehlers JENKINS-19439 im Plugin (das sich in der Betaversion befindet) habe ich festgestellt, dass meine Ressource von einem vorherigen Job gesperrt wurde, aber nicht freigegeben wurde, als der vorherige Job abgebrochen wurde.

Um herauszufinden, ob sich eine Ressource aktuell im gesperrten Zustand befindet, navigieren Sie zum betroffenen Jenkins-Knoten Jenkins -> Jenkins verwalten -> Knoten verwalten -> Master

Sie sollten den aktuellen Status aller externen Ressourcen sehen. Wenn unerwartet gesperrt ist, kann dies der Grund sein, warum Jobs auf einen Executor warten.

Ich konnte keine Details zur manuellen Lösung dieses Problems finden. 
Der Neustart von Jenkins hat das Problem nicht gelöst. 
.__ Am Ende ging ich mit dem brutalen Ansatz:

  • Entfernen Sie die externe Ressource 
    (siehe Jenkins -> Jenkins verwalten -> Knoten verwalten -> Master -> konfigurieren)
  • Starten Sie Jenkins neu
  • Erstellen Sie die externe Ressource neu
4
Craig Thomas

In meinem Fall hatte ich gerade das Plugin "Authorize Project" installiert und die Strategie in "Jenkins verwalten -> Globale Sicherheit konfigurieren -> Zugriffskontrolle für Builds" falsch als "Als anonym ausführen" festgelegt. 'Anonym' hatte also keine Rechte zur Ausführung des Jobs.

Durch Festlegen der ersten Strategie als "Als Benutzer ausführen, der den Build ausgelöst hat" wurden die in der Warteschlange befindlichen Jobs entsperrt.

3
Claudiu

In meinem Fall bemerkte ich dieses Verhalten, wenn die Box nicht mehr über genügend Arbeitsspeicher (RAM) verfügte. Ich ging zu Jenkins -> Jenkins verwalten -> Knoten verwalten und fand eine Ausnahmebedingung für den Speicher. Ich habe nur etwas Speicher freigegeben auf der Maschine und die Jobs begannen, in die Executoren zu gehen.

3

Kurze Antwort: Töte alle Aufträge, die auf dem Master ausgeführt werden.

In meinem Fall waren 3 Jobs mehr als 10 Tage an dem Master aufgehängt, die unbemerkt waren. Normalerweise führen wir keine Jobs direkt auf dem Master aus, alles läuft auf Slaves. Ich habe diese drei Jobs getötet, die aufgehängt wurden. Die Executoren des Sklaven nahmen automatisch Jobs auf.

Es sei darauf hingewiesen, dass sich in diesem betroffenen Zustand nur 1 Slave befand, obwohl wir 8 Slaves haben.

[EDIT] Wir haben die Antwort gefunden, warum sich nur ein Slave in diesem betroffenen Zustand befand. Wenn ein Jenkins-Slave ausfällt, werden alle anstehenden Aufträge automatisch an den Master übertragen. Alle drei aufgefangenen Jobs, die ich getötet habe, waren von diesem Sklaven.

3
mdabdullah

Ich hatte ein ähnliches Problem, weil mein Master auf "Nur für gebundene Jobs verlassen" eingestellt war. Obwohl ich den Sklaven deaktiviert hatte, umging Jenkins den Meister und suchte nach etwas anderem. 

Gehen Sie zu Jenkins -> Jenkins verwalten -> Knoten verwalten und klicken Sie auf die Schaltfläche "Konfigurieren" Ihres Master-Knotens (sieht aus wie ein Schraubendreher und ein Schraubenschlüssel). Überprüfen Sie die Verwendung und stellen Sie sicher, dass sie aktiviert ist "Verwenden Sie diesen Slave so weit wie möglich."

3
user3442998

In meinem Fall wurde dies durch Anzahl der Executoren (ich hatte 1) und das Ausführen von Jenkins Job (Projekt) von Pipeline verursacht (mein Pipeline-Skript startete mit anderen Jobs in Jenkins). Es verursachte Deadlock - meine Pipeline enthielt einen Executor und wartete auf ihren Job, aber der Job wartete auf einen freien Executor.

Die Lösung erhöht möglicherweise # of executors in Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node).

1
Fenix

Bei mir hat die Lösung funktioniert. 

Jenkins -> Jenkins verwalten -> Knoten verwalten -> Master -> konfigurieren -> Knoteneigenschaften -> Die Ausführung von Jobs auf Knoten beschränken - ist aktiviert und hat Zugriff auf bestimmte Benutzer. Ich habe mir selbst Zugang gegeben und dann begann der Job zu laufen. 

Wenn Ausführung von Jobs auf Knoten einschränken aktiviert ist, können geplante Tasks nicht ausgeführt werden. 

1
SKR

Was für mich funktioniert hat: Ich habe schließlich das Build Executor Status-Fenster links im Hauptfenster von Jenkins gesehen. Ich führe auf meinem lokalen System eine Entwicklungs-/Testinstanz mit 2 Executoren aus. Beide waren derzeit mit Builds beschäftigt, die nicht ausgeführt wurden. Nach dem Abbruch dieser Aufträge konnte mein dritter (ausstehender) Auftrag ausgeführt werden.

0
Bobby Tait

Für mich muss ich die Executoren manuell neu starten. Klicken Sie unter "Build Executor Status" auf "Dead" und drücken Sie die Schaltfläche "Neustart".

0
skwokie

Ich bin auf ein ähnliches Problem gestoßen, weil mein Master auf "Anzahl der ausführenden Personen" gesetzt wurde (die maximale Anzahl gleichzeitiger Builds, die Jenkins für diesen Agenten ausführen kann).

Gehen Sie zu Jenkins -> Jenkins verwalten -> Knoten verwalten und klicken Sie auf die Schaltfläche "Konfigurieren" Ihres Master-Knotens (erhöhen Sie die Anzahl der Executor, um mehrere Jobs gleichzeitig auszuführen).

0
Srikanth Mukku

Möglicherweise sind Meilensteine ​​eingerichtet, und Ihr Auftrag wird erst ausgeführt, wenn der vorherige Auftrag abgeschlossen ist.

0
albertski

In meinem Fall ähnelt es @Michael Easter: Ich habe ein Problem in einem Job, weil der Speicherplatz nicht ausreichte. Ich habe etwas Platz frei gemacht, Jenkins neu gestartet, aber das Problem bestand immer noch.

Die Lösung bestand darin, zu Jenkins -> Jenkins verwalten -> Knoten verwalten zu wechseln. Klicken Sie einfach auf die Schaltfläche, um den Status zu aktualisieren. 

0
Luis Solano

In meinem Fall muss ich Execute concurrent builds if necessary in den allgemeinen Einstellungen des Jobs einstellen.

0
Oleg Neumyvakin