Jenknis. После успешного выполнения теста, выключает агента на виртуальной машине и отмечает тест как FILED

133
27 августа 2019, 18:30

Запускаю через Jenkins тест на виртуальной машине. Он проходит успешно, но на моменте записи результатов об окончании теста возникает ошибка:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42:45 min
[INFO] Finished at: 2019-01-23T12:02:27+03:00
[INFO] Final Memory: 41M/391M
[INFO] ------------------------------------------------------------------------
[...]
C:\jenkinsWorkspace\workspace\44_autotrade_test_servicing>exit 0 
FATAL: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@465e46e8[name=SlaveAgent1]
hudson.remoting.RequestAbortedException: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@465e46e8[name=SlaveAgent1]
    at hudson.remoting.Request.abort(Request.java:303)
    at hudson.remoting.Channel.terminate(Channel.java:847)
    at hudson.remoting.Channel$1.terminate(Channel.java:509)
    at hudson.remoting.AbstractByteArrayCommandTransport$1.terminate(AbstractByteArrayCommandTransport.java:71)
    at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
    at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:629)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    at ......remote call to SlaveAgent1(Native Method)
    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
    at hudson.remoting.Request.call(Request.java:172)
    at hudson.remoting.Channel.call(Channel.java:780)
    at hudson.Launcher$RemoteLauncher.kill(Launcher.java:953)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:540)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Caused by: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@465e46e8[name=SlaveAgent1]
    at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
    at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:629)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Удаленный хост принудительно разорвал существующее подключение
    at sun.nio.ch.SocketDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(Unknown Source)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.read(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
    at org.jenkinsci.remoting.nio.FifoBuffer$Pointer.receive(FifoBuffer.java:137)
    at org.jenkinsci.remoting.nio.FifoBuffer.receive(FifoBuffer.java:310)
    at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:561)
    ... 6 more

После этого в Jenkins'е тест отмечается как непройденный и при этом на виртуальной машине выключается агент, и для его поднятия необходимо заходить на машину и включать заново, делается это так:

  1. Открытие командной строки от имени Администратора
  2. Вводится команда java -jar slave.jar -jnlpUrl http://адрес_мастера:8080/computer/имя_агента/slave-agent.jnlp

Запускать как службу возможности нет.

Версия Jenkins ver. 2.7.1, Java - 8.

Какие есть варианты решения проблемы, чтобы агент не выключался?

Мне посоветовали перенаправить вывод с консоли в файл, результаты следующие: https://pastebin.com/UpwzsFUb

Answer 1

Проблема решилась добавлением TimeUnit.SECONDS.sleep(15); в метод с аннотацией @After (выполняется всегда после теста независимо от результата завершения)

READ ALSO
Условие if для java [закрыт]

Условие if для java [закрыт]

Есть условие у которого PresentId==2 && petitgetLock()

143
Как использовать 2 батча на одном экране?

Как использовать 2 батча на одном экране?

Я в своём проекте использую TiledMap, которые для отрисовки используют SpriteBatch, Texture и камеру, и когда я двигаю камеру TiledMap движется за камерой,...

115
Filtering в maven-resources-plugin работает не во всех местах

Filtering в maven-resources-plugin работает не во всех местах

Пытаюсь автоматизировать процесс сборки приложения сразу в Docker образДля того чтобы переместить и добавить properties в Dockerfile использую плагин...

149
Flour Packer Problem

Flour Packer Problem

В курсе по Java попалась задача: необходимо написать метод с тремя параметрами типа int : bigCount, smallCount и goal, где bigCount - количество пятикилограммовых...

119