Moja kompilacja Jenkins zawiesza się między krokami kompilacji i po kompilacji.
Dane wyjściowe konsoli wskazują, że jest to 6-minutowe oczekiwanie (ale widziałem oczekiwania do jednej godziny):
10:53:26 BUILD FAILED in 1m 7s
10:53:26 4 actionable tasks: 4 executed
10:53:26 Build step 'Invoke Gradle script' changed build result to FAILURE
10:53:26 Build step 'Invoke Gradle script' marked build as failure
11:09:29 [CucumberReport] Using Cucumber Reports version 4.9.0
Znalazłem to i to pytania, które mają podobne problemy, a oni mówią, że rozwiązaniem jest ustawienie -DSoftKillWaitSeconds=0
w jenkins.xml
.
Potrzebuję jednak sposobu, aby ustawić opcję tylko dla określonych zadań, bez bałaganu przy globalnych ustawieniach Jenkinsa (nie chciałbym zadzierać z innymi projektami).
EDYTOWAĆ:
Gdy ręcznie przerywam zadanie, przed krokiem [CucumberReport] raporty Ogórków są nadal generowane.
Zaznaczono także opcję Przerwij kompilację, jeśli utknęła w polu Środowisko kompilacji, ze strategią No Activity
Limit czasu ustawioną na (Limit czasu sekund = 2).
Kiedy skompiluję projekt z tymi ustawieniami, kompilacja zakończy się niepowodzeniem, a komunikat „Przerwano po 0 sekundach” pokazany w Historii kompilacji, jak poprzednio, ale dane wyjściowe konsoli będą takie same. (Nic się nie zmienia, raporty Ogórka zostaną wygenerowane, ale po pewnym czasie).
timeout
opcji w fajce? Zdecydowanie powinieneś opublikować uproszczoną wersję swojej fajki. Trudno „odgadnąć”, co może być nie tak. Ponadto, to pytanie prawdopodobnie lepiej pasuje do devops.stackexchange.comOdpowiedzi:
Nie można wybrać wartości specyficznej dla zadania
SoftKillWaitSeconds
(wartość pochodzi z rdzenia Jenkinsa w punkcie, w którym nazwa zadania nie jest znana).Moje zalecenie to poprawienie obsługi przerywania w samym zadaniu , aby nie zależało od „limitu czasu miękkiego zabicia”. Jeśli korzystasz z systemu uniksowego, możesz to zapewnić, uruchamiając zadanie w nowej grupie procesów (
set -m
w bash) i (na przykład) ustawiając odpowiednią pułapkę wyjścia.źródło
Używamy wtyczki Build-timeout do zabijania zablokowanych zadań ze strategią timeout ustawioną na
No Activity
lubAbsolute
. Dla mnie jest to dobre podejście, gdy używasz projektów freestyle. Powodem, dla którego twoja kompilacja jest „przerywana po 0 sekundach”, jest to, że najprawdopodobniej istnieją niedokończone procesy potomne. Z dokumentacji :Możesz wypróbować strategię bezwzględnego limitu czasu. Możesz zdefiniować zmienną globalną, aby nie powtarzać wartości limitu czasu w zadaniach:
Jeśli to nie działa, możesz spróbować zajrzeć do dzienników https: // your-jenkins-server / log lub do zrzutu wątku.
Zawieszenie może być spowodowane nową / starą wersją wtyczki. Spróbuj znaleźć, jakie są niedokończone procesy potomne. Spróbuj wyłączyć akcje po kompilacji jeden po drugim, aby znaleźć tę, która może być przyczyną problemu. Możesz zobaczyć /superuser/1401879/debugging-what-happens-when-a-jenkins-build-u nieoczekiwanie-pauzuje- lub -hangs
źródło