Probleme mit Jenkins

schalentier

Gesperrter Benutzer
Hallo zusammen,

vielleicht kann mir ja hier jemand helfen. Wir setzen bei uns Jenkins als CI System in Kombination mit dem Gerrit Code Review Tool ein. Eigentlich laeuft das auch soweit alles super. Wir haben inzwischen 10 Jenkins Slaves, die die Gerrit Patchsets uebersetzen, alle Tests ausfuehren und entsprechende Packete schnueren, die dann auf Wunsch direkt ausgeliefert werden koennen.

In letzter Zeit haeufen sich allerdings sehr seltsame Probleme: Manchmal bleibt der eine oder andre Slave einfach "haengen". Das ist total zufaellig, mal der eine, mal der andre Slave (das sind btw alles virtuelle Maschinen mit einem Ubuntu drauf). Manchmal mitten in irgendwelchen Tests, manchmal erst ganz am Ende, wenn der Build eigentlich schon fertig ist.

Einziger Workaround ist derzeit, den Build abzubrechen und erneut zu starten. Bei einer Buildzeit von ca 45 Minuten ist das natuerlich sehr nervig.

Ich hab jetzt auch schon mehrere Stunden mit Google und dem Jenkins Ticketsystem verbracht, bisher ohne klares Ergebnis. Zwar gibt es etliche Probleme, die irgendwelche Deadlocks verursachen, allerdings sehen unsere Stackdumps deutlich anders aus, als die in den Bugtickets beschriebenen. Zudem sind die meisten davon bereits auf geloest gestellt und wir setzen eine recht aktuelle Jenkins Version ein.

Die Haenger wurden uebrigens richtig schlimm, als wir noch 5 weitere Slaves dazugepackt hatten. Inzwischen sind die neuen wieder deaktiviert, aber die Probleme immer noch da.

Haengt ein oder mehrere Slaves, ist auf den Rechnern (inkl. Master) weder CPU- noch IO Last. Die idlen einfach und offensichtlich warten die auf irgendwas.

Hat hier jemand schon mal aehnliche Probleme oder einen Hinweis, was wir noch ausprobieren koennten?
 

Wildcard

Top Contributor
Schuss ins Blaue:
Hast du sichergestellt das die Systemuhren aller Slaves und des Masters synchron laufen?
Ich würde dafür in jedem Fall ein neues Ticket aufmachen. Vielleicht helfen die Stackdumps den Entwicklern.
 

schalentier

Gesperrter Benutzer
Ob du's glaubst oder nicht, dieser Gedanke kam mir auch schon - leider hab ich den als Quatsch verworfen. Nun zeigt aber sogar Jenkins die Zeitdifferenzen zu einzelnen Slaves an. Deshalb synchronisieren wir nun erstmal alle Uhrzeiten. Obs hilft wird sich dann zeigen, denn wie gesagt, der Fehler tritt nur sporadisch auf, d.h. wir koennen schlecht sagen, ob das wirklich die Ursache ist...

Danke jedenfalls und man merke sich: Manchmal sollte man doch auf seinen Bauch hoeren ^^
 

fastjack

Top Contributor
Was für Tests laufen denn in den Slaves? Nur Unittests oder auch Integrationstest (die vielleicht bei paralleler Ausführung Seiteneffekte erzeugen...).
 

schalentier

Gesperrter Benutzer
Unit- und Integrationstests. Letztere benutzen natuerlich die Datenbank (Oracle), aber jeder Slave hat sein eignes DB-Schema. Da die Slaves in VM's laufen, sollte es eigentlich keine relevanten Seiteneffekte geben, oder was genau meinst du?

Allerdings ist es tatsaechlich so, dass der ein oder andere Build mal mitten in den Tests stehen bleibt oder es zu einem Timeout kommt (sehr selten). Das hat aber nichts mit dem oben genannten Problem zu tun, denn das tritt wie gesagt auf, wenn der Build komplett fertig ist. Es steht dann auch ein "BUILD SUCCESSFUL" im Log, aber es geht einfach nicht weiter.

Wir versuchen nun erstmal die Zeiten zu synchronisieren und sehen dann weiter. Ansonsten muessen halt die 10 Slaves (mit denen ja alles soweit klappt) reichen ;-)
 
M

maki

Gast
Wir hatten auch so usnere Probleme mit Hudson, das war 2010.

Durch das von Wildcard angesprochenen sync. Problem sind regelmässig Builds hängengeblieben, die Slaves waren aber VMs(!), es musste für Windows XP 32 Bit, Windows 7 32 Bit & 64 Bit, Ubuntu & OpenSuSE 32 & 64 bit gebaut werden, jeder Slave für eine Plattform.

Bei VMs laufen die Uhren aber sehr ungenau (Zeit "schwimmt" da eher) und die Probleme haben wir erst wegbekommen nachdem wir "echte" Maschinen als Slaves verwendet haben.

Hudson/Jenkins hat einen sehr schlechten ruf was Updates betrifft (musste ich am eigenen Leib erfahren), ist auch kein Wunder bei dem Code (Hudson bzw Jenkins Klasse ein Singleton mit ein paar Tausend zeilen und so gut wie keine tests), nach jedem Update hat etwas anderes nicht mehr funktioniert, also am besten eine Version finden die funzt und dann dabei bleiben.
 

schalentier

Gesperrter Benutzer
Oh man, wir hams gefunden :)

Der Jenkins zeigt ja immer an, welche Tests fehlgeschlagen sind und auch, wie gross die Differenz der fehlgeschlagenen Tests zum letzten Build ist. D.h. ein Build kann erst dann fertiggestellt werden, wenn der vorherige Build fertig ist (sonst kann er die Differenz nicht ausrechnen).

In unserem Fall ist nun der Effekt aufgetreten, dass ein Slave (warum auch immer) langsamer laeuft, als die anderen. Wird dieser langsame Slave nun zuerst gestartet, muessen alle nachfolgenden Builds auf eben jenen langsamen warten. *facepalm*

Beim Einsatz von Gerrit braucht man aber diese Differenz prinzipiell aber gar nicht (weil ein Patchset nicht zwingend irgendwas mit einem anderen Patchset zu tun haben muss).

Kann man das irgendwie abschalten?

Die Uhren laufen jetzt trotzdem synchron.
 

Wildcard

Top Contributor
Hudson/Jenkins hat einen sehr schlechten ruf was Updates betrifft (musste ich am eigenen Leib erfahren), ist auch kein Wunder bei dem Code (Hudson bzw Jenkins Klasse ein Singleton mit ein paar Tausend zeilen und so gut wie keine tests), nach jedem Update hat etwas anderes nicht mehr funktioniert, also am besten eine Version finden die funzt und dann dabei bleiben.
Sowohl Hudson als auch Jenkins haben jetzt glücklicherweise Stable Release Trains, für alle die nicht ständig auf bleeding edge updaten wollen. Das macht die Sache deutlich stabiler.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Probleme Jenkins mit Maven einzurichten Tools - Maven, Gradle, Ant & mehr 4
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
E Maven Probleme beim Arquillian Deployen Tools - Maven, Gradle, Ant & mehr 0
D [ERLEDIGT] Probleme mit Authorization in Nexus und mvn deploy plugin Tools - Maven, Gradle, Ant & mehr 1
P Maven Download-Probleme beim Build Tools - Maven, Gradle, Ant & mehr 5
C Probleme mit Applet mit SQL im Browser Tools - Maven, Gradle, Ant & mehr 4
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
T Launch4j: eventuell Klassenpfad Probleme Tools - Maven, Gradle, Ant & mehr 4
H WebStart-Probleme mit JRE Version 1.6.0_18 Tools - Maven, Gradle, Ant & mehr 1
E Probleme mit Buckminster unter eclipse 3.4 Tools - Maven, Gradle, Ant & mehr 11
ARadauer Probleme mittels scp bei ant Tools - Maven, Gradle, Ant & mehr 1
F Probleme mit Java WebStart; Hauptklasse konnte nicht gef. Tools - Maven, Gradle, Ant & mehr 18
M Probleme mit JApplet Tools - Maven, Gradle, Ant & mehr 20
M Mein erstes Applet macht Probleme Tools - Maven, Gradle, Ant & mehr 4
M probleme mit signieren Tools - Maven, Gradle, Ant & mehr 6
C 3 "kleine" Probleme zu meinem Applet Tools - Maven, Gradle, Ant & mehr 11
A Probleme bei übergabe von Variabeln im Applet Tools - Maven, Gradle, Ant & mehr 9
U Probleme mit paint(Graphics g) Tools - Maven, Gradle, Ant & mehr 9
M WebStart 1.6 Probleme Tools - Maven, Gradle, Ant & mehr 8
U Probleme beim Reloaden des Applets im Browser Tools - Maven, Gradle, Ant & mehr 9
R Probleme bei Applet mit dem IE7? Tools - Maven, Gradle, Ant & mehr 2
P MEDIA-Tracker macht Probleme? Tools - Maven, Gradle, Ant & mehr 6
0 Webstart-Probleme unter Java6 Tools - Maven, Gradle, Ant & mehr 2
R Slash-Probleme durch File Tools - Maven, Gradle, Ant & mehr 2
G Probleme mit Texteingabe in Applets Tools - Maven, Gradle, Ant & mehr 2
E Probleme mit Java WebStart Tools - Maven, Gradle, Ant & mehr 10
H Probleme mit setFont() Tools - Maven, Gradle, Ant & mehr 1
A Probleme beim Anzeigen des Applets Tools - Maven, Gradle, Ant & mehr 5
H Probleme beim Applet signieren Tools - Maven, Gradle, Ant & mehr 10
M Probleme mit Applets Tools - Maven, Gradle, Ant & mehr 5
S Probleme mit ActionListener bzw. actionPerformed Tools - Maven, Gradle, Ant & mehr 2
P Probleme mit IE und sp2 - Applet wird nicht angezeigt Tools - Maven, Gradle, Ant & mehr 11
F Probleme mit Jar bzw jar-Archiven Tools - Maven, Gradle, Ant & mehr 3
S Probleme mit einem Applet Tools - Maven, Gradle, Ant & mehr 2
P Probleme mit Applet Tools - Maven, Gradle, Ant & mehr 6
L Jenkins Build mit git Hashwert Tools - Maven, Gradle, Ant & mehr 2
H Jenkins aktulles Checkstyle Plugin Tools - Maven, Gradle, Ant & mehr 2
OnDemand Jenkins Pipeline Build > Send Info Jira Tools - Maven, Gradle, Ant & mehr 3
H Nutzung einer eigenen checkstyle Konfiguration in Jenkins - Grundsätzliches Tools - Maven, Gradle, Ant & mehr 2
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
H Jenkins - Publish Coverage Report Tools - Maven, Gradle, Ant & mehr 19
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
H Maven Bekomme cobertura in jenkins nicht zu laufen :-( Tools - Maven, Gradle, Ant & mehr 1
Thallius Jenkins -> git to zip? Tools - Maven, Gradle, Ant & mehr 5
Thallius Jenkins nur zip file erstellen? Tools - Maven, Gradle, Ant & mehr 3
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
B Jenkins Emal-Versand Tools - Maven, Gradle, Ant & mehr 5
K Subversion svn & Jenkins - Änderungen werden nicht angezeigt Tools - Maven, Gradle, Ant & mehr 4
Y Jenkins Zeitsteuerung Tools - Maven, Gradle, Ant & mehr 3
M Jenkins Rechte-Verwaltung Tools - Maven, Gradle, Ant & mehr 3
K Jenkins Konfiguration für einen multi-module Maven Projekt Tools - Maven, Gradle, Ant & mehr 2
G Ant Hudson/Jenkins, Ant und JUnit unter einen Hut bringen Tools - Maven, Gradle, Ant & mehr 12
G Jenkins Userverwaltung Tools - Maven, Gradle, Ant & mehr 7
G Maven JMeter und Jenkins Tools - Maven, Gradle, Ant & mehr 1
X Maven Jenkins/maven - abhängige Projekte automatisch bauen Tools - Maven, Gradle, Ant & mehr 7
G Jenkins Task starten Tools - Maven, Gradle, Ant & mehr 16

Ähnliche Java Themen

Neue Themen


Oben