2013-07-04 8 views
5

Ich verwende Jenkins, um meine Projekte auf Maven 3 zu bauen. Es ist ~ 15 Jobs definiert. Sie laufen den ganzen Tag auf Commit oder Cron-Ausdruck (meistens einmal pro Stunde). Einige Jobs verwenden Sonar (XXXDailyBuild nicht).Maven sureffirebooter

Irgendwann ist ich mit Blick auf Fehler:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean (default-clean) on project xxx: Failed to clean project: Failed to delete E:\CI\data\jobs\XXXDailyBuild\workspace\XXX\xxx\target\surefire\surefirebooter8004371362793469171.jar -> [Help 1]

Es wird verursacht durch gesperrt Jenkins Arbeitsplatz durch aktiven Java-Prozess von surefirebooter8004371362793469171.jar

Jenkins Job läuft mit ‚gleichzeitigem Ausführen baut bei Bedarf‘ deaktiviert. Jeder andere Job/Prozess verwendet nicht den Arbeitsbereich 'XXXDailyBuild'.

Ich versuche herauszufinden, was los ist. Gibt es eine Möglichkeit, den Prozess 'surefireboooter8004371362793469171.jar' zu dumpen, um ihren Heap zu analysieren?

+2

surefireboouterxxx.jar wird von maven verwendet, um einige Komponententests auszuführen. Die Tatsache, dass dieses jar immer noch verwendet wird, wenn ein anderer Build gestartet wird, zeigt an, dass der vorherige Build nicht korrekt beendet wurde (möglicherweise wurde er unterbrochen). – lweller

Antwort

7

Problem ist untersucht worden:

  1. Unsere Anwendung läuft JUnit-Tests von surefirebooter Maven Plugin jar
  2. Alle Tests brauchen frische Modelle Zustand
  3. Während Modelle Initialisierung alten Zustand Modelle sind so angeordnet und frisch initialisiert Einige Modelle starten Threads dh. Directory-Watcher

das eigentliche Problem ist: 1. wenn einige Test in Schritt fehlschlägt 3. alten Modelle Zustand nicht angeordnet und auf diese Weise einige Threads werden (auf jedem Test nicht dupliziert) nicht gestoppt

Es war einfach, es mit dem jvisualvm-Tool zu überprüfen.

Endlich, nach Maven Test läuft der Prozess für immer aktiv.

Ich hoffe, diese Analyse hilft jemandem!

Verwandte Themen