2009-07-16 9 views
3

Wir haben eine automatisierte Build, verwaltet von Hudson (1.312), die ein paar Schichten hat. Auf den Sklaven:Hudson "stop"/cancel Build Verlassen Prozesse hinter

  • Codewarrior cc/ld und andere Werkzeuge (einige in-house), betrieben von
  • einige rekursive Cygwin GNU 3,81 Instanzen machen, betrieben von
  • Hudson "Windows-Batch-Befehl ausführen" (so cmd.exe läuft eine Batch-Datei, die Hudson erstellt, so nah wie ich sagen kann), ausgeführt von
  • Hudson-Dienst, der als Domänenbenutzer (nicht LocalService) ausgeführt wird, gestartet am
  • ein Windows XP (32- Bit) Maschine

Der Master ist ein OSX-Computer, auf dem Tomcat ausgeführt wird.

Das Problem: Die Schaltfläche "cancel build" (kleines rotes X, das zu einer "Stop" -URL führt) nimmt make oder einen seiner Subprozesse nicht heraus. Was die Benutzeroberfläche von Hudson betrifft, wurde der Job erfolgreich beendet, aber es laufen immer noch die Prozesse make.exe und cc/ld. Dies kann zu schwerwiegenden Problemen führen, wenn der Build erneut im selben Arbeitsbereich gestartet wird.

Gibt es eine "Best Practice", um alle diese Prozesse herunterzufahren?

(Bevor jemand ein weniger fränkisches Build-Management-Framework wie ant, jam, maven, etc. vorschlägt - wir migrieren zu Jam, etwas erfolgreich! Während wir die Knicke aussortiert haben, müssen Builds killable sein auf dem aktuellen System jedoch.)

+0

Welche Version von Hudson liegst du? –

+0

@Michael: aktualisiert, um 1.312 anzuzeigen. Gerade aktualisiert auf 1.315 heute Morgen, aber habe nicht getestet tötung seit dann, wird kommentieren mit ergebnissen, wenn ich die chance habe. – leander

Antwort

5

Dies ist wahrscheinlich ein Fehler, und wir müssen dieses Problem diagnostizieren. Können Sie dies bitte im Issue Tracker ablegen?

+0

Sicher Sache. Ich werde morgen hoffentlich etwas aufarbeiten; Ich habe einige Sysinternals procexp und procmon Informationen, die nützlich sein können, zu enthalten. – leander

+0

Kohsuke, ich arbeite an einem Basar-scm-Plugin für Hudson, und ich habe ein ähnliches Problem. Gibt es keine Möglichkeit, auf den Abbruch zu warten? Dort kann das Plugin einige Säuberungsarbeiten durchführen. Vielleicht und addListener-Methode zur SCM-Klasse? – Craig

+0

Ihr Plugin erhält eine InterruptedException, wenn der Benutzer einen Build abbricht. Verwenden Sie das als einen Hinweis, um einige Aufräumarbeiten durchzuführen. –

Verwandte Themen