2013-08-12 127 views
1

我得到java.net.SocketException:連接重置時,試圖連接一個無頭的debian奴隸我主詹金斯主。它已經運行好幾個星期沒有錯誤,突然間我無法連接。Jenkins無頭Linux奴隸連接錯誤

我可以telnet到主端口6256.

從輸出:

#> java -jar ~/slave.jar -jnlpUrl https://test.tv/jenkins/computer/debian_slave_node_1/slave-agent.jnlp 
Aug 12, 2013 10:10:46 AM hudson.remoting.jnlp.Main$CuiListener <init> 
INFO: Hudson agent is running in headless mode. 
Aug 12, 2013 10:10:46 AM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Locating server among [https://test.tv/jenkins/, http://test.tv/jenkins/] 
Aug 12, 2013 10:10:46 AM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Connecting to test.tv:6256 
Aug 12, 2013 10:10:46 AM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Handshaking 
Aug 12, 2013 10:10:46 AM hudson.remoting.jnlp.Main$CuiListener error 
SEVERE: Connection reset 
java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(SocketInputStream.java:189) 
    at java.net.SocketInputStream.read(SocketInputStream.java:121) 
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) 
    at java.io.BufferedInputStream.read(BufferedInputStream.java:254) 
    at hudson.remoting.ClassicCommandTransport.create(ClassicCommandTransport.java:98) 
    at hudson.remoting.Channel.<init>(Channel.java:391) 
    at hudson.remoting.Channel.<init>(Channel.java:387) 
    at hudson.remoting.Channel.<init>(Channel.java:348) 
    at hudson.remoting.Channel.<init>(Channel.java:344) 
    at hudson.remoting.Channel.<init>(Channel.java:332) 
    at hudson.remoting.Engine.run(Engine.java:238) 

詹金斯主輸出:

java.io.IOException: Unexpected termination of the channel 
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50) 
Caused by: java.io.EOFException 
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2596) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) 
at hudson.remoting.Command.readFrom(Command.java:92) 
at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:72) 
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48) 

回答

1

很難說知道更多之前發生了什麼。特別是:

  • 它會在每次連接請求時失敗嗎?如果是這樣,請檢查您的服務器上的auth.log,因爲看起來在「狀態INFO:握手」之後以及「已連接」之前發生故障
  • 您的時鐘是否已正確同步?
  • 您使用的是什麼操作系統?你的奴隸上有哪些Java版本?檢查你的PATH和JAVA_HOME
  • 你最近更新了jenkins嗎?如果是這樣,你有沒有更新奴隸?你有沒有嘗試恢復更新?你正在使用哪個版本? 1.520取消了對JDK 1.5的支持。
  • 你如何運行你的java命令?從SSH會話中的終端?這是從主人腳本?

參見Jenkins slave jobs failing on "Unexpected termination of channel"

+0

謝謝@coffeebreaks詹金斯節點在兩天後開始迴應。我有一個腳本,用於檢查Jenkins主節點是否連接了節點並嘗試重新啓動它。所以它解決了它自己。 – jacksoncage

0

我碰到同樣的問題,這似乎是通過運行詹金斯 - 從爲根周圍的工作。現在,這個事情會週期性地與那個同樣的錯誤斷開,我想知道這個錯誤是由於LB存活。只要我獲得更多信息,我會盡快更新此答案。

+0

嗨威爾 - 只是提醒人們,像這樣的人通常會對這個問題留下評論,當他們準備好時,答案應該被用於提供解決方案:) – robjohncox

+0

哎呦。我有一種感覺,這種迴應更好,但我不想創建一個賬號來添加這個輸入。儘管下次會做。 – 2013-08-15 19:52:59

+0

不用擔心 - 當人們加入其他人試圖幫助他們時,這是一個標準的事情。而且你應該創建一個賬戶並參與進來,這是一個非常好的社區! – robjohncox

0

在我的情況下,一切都在根帳戶下工作。但是,在用戶帳戶下,節點客戶端無法連接到服務器,並顯示消息「失敗,意外終止通道」。 問題在於訪問或寫入工作文件夾。只要我重新分配所有者通過「chown -R」,節點就會成功啓動。