Jenkins Linux 슬레이브 오류: 심각: 채널 채널의 I/O 오류

Jenkins Linux 슬레이브 오류: 심각: 채널 채널의 I/O 오류

슬레이브를 시작하려고 하는 모든 Linux 서버에서 이 오류가 발생합니다. 버전은Jenkins ver. 1.532.1. Jenkins 버전을 다시 설치할 때 이 문제가 발생하지 않았습니다. 1.509.4.

이 문제에 관해 인터넷에서 많은 게시물을 읽었지만 여전히 문제를 해결할 단서가 없습니다. 이 설치를 제거하고 이전 버전을 설치하고 싶습니다. 현재 1.509.4입니다.

누구든지 이것을 디버깅하는 방법에 대한 아이디어를 줄 수 있습니까?

젠킨스.로그:

Dec 20, 2013 9:38:24 AM jenkins.slaves.JnlpSlaveAgentProtocol$Handler$1 onClosed
WARNING: Channel reader thread: trmsrv43 for + trmsrv43 terminated
java.net.SocketException: Socket closed


bash-3.00$ java  -jar slave.jar -jnlpUrl htttp://name:8080/computer/trmsrv43/slave-agent.jnlp
20-Dec-2013 9:37:47 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
20-Dec-2013 9:37:47 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/, htttp://name:8080/]
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:03 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
        at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
Caused by: java.io.EOFException
hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
20-Dec-2013 9:38:03 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
20-Dec-2013 9:38:03 AM hudson.remoting.JarCacheSupport$1 run
WARNING: Failed to resolve a jar e42831c9e9138e2761253da84a096665
hudson.remoting.RemotingSystemException: hudson.remoting.ChannelClosedException: channel is already closed
caused by: hudson.remoting.ChannelClosedException: channel is already closed
        at hudson.remoting.Channel.send(Channel.java:516)
        at hudson.remoting.Request.call(Request.java:129)
        at hudson.remoting.Channel.call(Channel.java:714)
        at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:167)
        ... 10 more
Caused by: java.io.IOException: Unexpected termination of the channel
        at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)

20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/]
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:13 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
        at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/]
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:24 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
        at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
20-Dec-2013 9:38:24 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated

답변1

Jenkins 2.60.1로 업데이트할 때 이 문제가 발생했습니다. 해당 버전은 Java 8이 필요한 첫 번째 LTS 릴리스이며 Java 8을 사용하도록 마스터를 업데이트했습니다. 불행하게도 슬레이브가 시작되지 않아 제목에 보고된 오류가 표시됩니다.

문제는 슬레이브 노드가 Java 7을 사용하여 시작했고 슬레이브 노드에서 올바른 Java 경로가 사용되었는지 확인하기 위해 노드 구성 페이지의 "고급" 버튼을 사용해야 한다는 것입니다.

관련 정보