2015-05-28 20 views
8

Wszystkie testy automatyczne przebiegają pomyślnie. ale problem xvfb powoduje niepowodzenie kompilacji w Jenkins.xvfb-run: linia 171: kill: (25939) - Brak takiego procesu

Użyłem poniżej commnad w opcji ExecuteShell dostępny pod Jenkins uruchomić moje przypadków testowych na bezgłowe przeglądarce

/usr/bin/xvfb-run /usr/local/apache-maven-3.3.1/bin/mvn clean test -Dbrowser=firefox 

Uzyskanie poniżej wynik:

Results : 

Tests run: 22, Failures: 0, Errors: 0, Skipped: 0 


[INFO] BUILD SUCCESS 

[INFO] Total time: 10:19 min 

[INFO] Final Memory: 20M/47M 


/usr/bin/xvfb-run: line 171: kill: (25939) - No such process 

Build step 'Execute shell' marked build as failure 

Jak widzimy na wyjściu [INFO] BUILD SUCCESS . Ale /usr/bin/xvfb-run: line 171: kill: (25939) - No such process powoduje błąd build.

Czy ktokolwiek może podać jakieś obejście tego problemu?

+0

Co to jest linia 171 z 'Xvfb-run'? Czy scenariusz online jest gdzieś widoczny? –

+0

xvfb-run uruchamia pęk kodu. Nie wiem, który wiersz przyjmuje jako 171. – vish

+0

Wygląda mniej więcej tak jak [this] (https://git.centos.org/blob/rpms!xorg-x11-server/70130e98ab8c06ce3f7e7d65a80e71aa5f09f614/SOURCES! xvfb-run.sh;jsessionid = o6zzn1bogxm4iee8l4ugs6q1)? Problem polega na tym, że z jakiegoś powodu Xvfb umarł już w momencie, gdy skrypt próbuje go zabić, więc "kill" kończy się niepowodzeniem. Nie wiem, dlaczego tak się stało. Możesz zmodyfikować skrypt, aby poradzić sobie z tą sprawą, ale wyraźnie nie sądzisz, że to coś, co ogólnie powinno się wydarzyć. –

Odpowiedz

7

Miałem ten sam problem, próbując uruchomić wkhtmltopdf przez xvfb-run.

W moim skrypcie PHP kilka razy wykonałem /usr/bin/xvfb-run /usr/bin/wkhtmltopdf ... w tym samym skrypcie. Pierwsza zawsze działała, ale druga nie powiodła się konsekwentnie z tym samym błędem, o którym napisałeś.

Dodawanie -e /tmp/xvfb.log do drugiego polecenia ujawnił to w dzienniku:

Fatal server error: (EE) Server is already active for display 99 If this server is no longer running, remove /tmp/.X99-lock and start again.

Rozwiązaniem w moim przypadku było dodać flagę -a do polecenia:

/usr/bin/xvfb-run -a /usr/bin/wkhtmltopdf ...

Który powie xvfb-run, aby "spróbować uzyskać bezpłatny numer serwera, zaczynając od --server-num".

+3

dzięki @brian, tylko dla komentarza .. teraz ta opcja wydaje się przestarzała, nowa to opcja -d/--auto-display – wnasich

+0

Oh , nie wiedziałem o tym. Co to zmienia? Dziękuję Ci. –

-1

mogę pominąć ten sam błąd, stosując małą sztuczkę:

sleep(10); 

na mojego kodu ... po zakończeniu zadania i spał mój kod PHP można uruchomić kolejne zadanie bez żadnych błędów ... po moim skrypt PHP ...

nadzieję, że pomoże