java.io.IOException: неожиданный EOF, когда подчиненный Jenkins пытается проверить SVN
Я пытаюсь настроить подчиненное устройство Jenkins на отдельном компьютере с Windows 10. Мастер работает на Windows 8.1. slave.jar выполняется с командой на мастере. Я делаю это с помощью winrs: winrs -r:192.168.xxx.xxx -u:MyUserName -p:MyPassword java -jar C:\JenkinsAgent\slave.jar
Я нахожусь в точке, где выполняется тестовая работа, которая работает исключительно echo Hello World
как пакетная команда успешно.
Когда я добавляю модули для извлечения с сервера Subversion, тестовое задание не выполняется. Я вижу одну из следующих двух ошибок в журнале тестового задания, и она появляется довольно случайно, когда появляется одна из них.
Ошибка 1:
Building remotely on Robot Framework Test Slave (RobotFrameworkTestSlave) in workspace C:\JenkinsAgent\agentRoot\workspace\TestJobRFTestingSlave
FATAL: java.io.IOException: Unexpected EOF
java.io.IOException: Unexpected EOF
at hudson.remoting.ChunkedInputStream.readUntilBreak(ChunkedInputStream.java:99)
at hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
Caused: hudson.remoting.RequestAbortedException
at hudson.remoting.Request.abort(Request.java:331)
at hudson.remoting.Channel.terminate(Channel.java:989)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:92)
at ......remote call to Robot Framework Test Slave(Native Method)
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1654)
at hudson.remoting.Request.call(Request.java:194)
at hudson.remoting.Channel.call(Channel.java:904)
at hudson.FilePath.act(FilePath.java:987)
at hudson.FilePath.act(FilePath.java:976)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:902)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:838)
at hudson.scm.SCM.checkout(SCM.java:495)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1212)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:566)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:491)
at hudson.model.Run.execute(Run.java:1737)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:421)
Finished: FAILURE
Соответствующий ведомый журнал:
<===[JENKINS REMOTING CAPACITY]===> channel started
Slave.jar version: 3.10.2
This is a Windows agent
Agent successfully connected and online
Dec 14, 2017 12:46:03 PM hudson.slaves.ChannelPinger$1 onDead
INFO: Ping failed. Terminating the channel channel.
java.util.concurrent.TimeoutException: Ping started at 1513255323111 hasn't completed by 1513255563116
at hudson.remoting.PingThread.ping(PingThread.java:130)
at hudson.remoting.PingThread.run(PingThread.java:86)
channel stopped
ERROR: Connection terminated
[8mha:////4KowEmRObna4QTvhMtPiadKMjrmmt7iuHVG7T5pbYTL2AAAAVx+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0mV3NWzufebKBsTA0NFEYMUmgZnCA1SyAABjCCFBQC2xNaiYAAAAA==[0mjava.io.IOException: Unexpected EOF
at hudson.remoting.ChunkedInputStream.readUntilBreak(ChunkedInputStream.java:99)
at hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
ERROR: Process terminated with exit code 0
[8mha:////4KowEmRObna4QTvhMtPiadKMjrmmt7iuHVG7T5pbYTL2AAAAVx+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0mV3NWzufebKBsTA0NFEYMUmgZnCA1SyAABjCCFBQC2xNaiYAAAAA==[0m
Ошибка 2:
java.io.StreamCorruptedException: invalid stream header: ED000573
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
Соответствующий ведомый журнал:
<===[JENKINS REMOTING CAPACITY]===> channel started
Slave.jar version: 3.10.2
This is a Windows agent
Agent successfully connected and online
Winrs error:ERROR: Connection terminated
The pipe has been ended.
[8mha:////4KowEmRObna4QTvhMtPiadKMjrmmt7iuHVG7T5pbYTL2AAAAVx+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0mV3NWzufebKBsTA0NFEYMUmgZnCA1SyAABjCCFBQC2xNaiYAAAAA==[0mjava.io.StreamCorruptedException: invalid stream header: ED000573
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
Так что это происходит только тогда, когда я пытаюсь сделать проверку на ведомом, так как просто работает echo Hello World
работает. Ручная проверка хранилища, которое я хочу проверить на ведомой машине, также работает.
Я застрял с этой проблемой, так как гуглил всю информацию, которую я нашел пустой, и я не знаю другого способа собрать больше информации о том, что на самом деле происходит.
Обновление 1: В общем журнале Jenkins (в разделе "Управление Jenkins-> Системный журнал-> Все журналы Jenkins") я вижу следующее сообщение об ошибке:
Failed to monitor Robot Framework Test Slave for Free Swap Space
java.util.concurrent.TimeoutException
at hudson.remoting.Request$1.get(Request.java:307)
at hudson.remoting.Request$1.get(Request.java:231)
at hudson.remoting.FutureAdapter.get(FutureAdapter.java:59)
at hudson.node_monitors.AbstractAsyncNodeMonitorDescriptor.monitor(AbstractAsyncNodeMonitorDescriptor.java:96)
at hudson.node_monitors.AbstractNodeMonitorDescriptor$Record.run(AbstractNodeMonitorDescriptor.java:305)
Поиск в Google указал мне на https://issues.jenkins-ci.org/browse/JENKINS-19445 и https://issues.jenkins-ci.org/browse/JENKINS-48309. Я не уверен, имеет ли это какое-либо отношение к моей проблеме, но люди испытывают отчасти то же самое, что и я. Последний находится на рассмотрении и может решить эту проблему в некоторых более поздних выпусках, но это только предположение.
1 ответ
Я решил свою проблему, используя Java Web Start вместо Windows Remote Management для подключения к подчиненному. Я пробовал это раньше, но у него тоже были проблемы, но мне удалось их решить.