2017-06-22 50 views
3

將Jenkins主站安裝更新至其最新LTS版本2.46.3後,其一個從站(Windows 7機器,32位)無法與主站連接。Jenkins從站無法與主站連接:錯誤的確認序列

我們得到的錯誤是:

java -jar slave.jar -jnlpUrl https://<jenkins-name>/computer/<node-name>/slave-agent.jnlp -secret <secret-value> 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main createEngine 
INFO: Setting up slave: node-name 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener <init> 
INFO: Jenkins agent is running in headless mode. 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Locating server among [https://<jenkins-name>/] 
Jun 22, 2017 1:19:05 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve 
INFO: Remoting server accepts the following protocols: [JNLP3-connect, JNLP-connect, CLI2-connect, Ping, CLI-connect, JNLP4-connect, JNLP2-c 
onnect] 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Agent discovery successful 
    Agent address: <jenkins-name> 
    Agent port: <jenkins-port> 
    Identity:  <id:en:ti:ty> 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Handshaking 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Connecting to <jenkins-name>:9150 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Trying protocol: JNLP4-connect 
Jun 22, 2017 1:19:05 PM org.jenkinsci.remoting.protocol.impl.AckFilterLayer abort 
WARNING: [JNLP4-connect connection to <our-proxy>/10.253.0.11:81] Incorrect acknowledgement sequence, expected 0x0003414333 got 0x4854545044 
Jun 22, 2017 1:19:05 PM hudson.remoting.jnlp.Main$CuiListener status 
INFO: Protocol JNLP4-connect encountered an unexpected exception 
java.util.concurrent.ExecutionException: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowled 
gement sent 
     at org.jenkinsci.remoting.util.SettableFuture.get(SettableFuture.java:223) 
     at hudson.remoting.Engine.innerRun(Engine.java:385) 
     at hudson.remoting.Engine.run(Engine.java:287) 
Caused by: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowledgement sent 
     at org.jenkinsci.remoting.protocol.impl.AckFilterLayer.onRecvClosed(AckFilterLayer.java:280) 
     at org.jenkinsci.remoting.protocol.FilterLayer.abort(FilterLayer.java:164) 
     at org.jenkinsci.remoting.protocol.impl.AckFilterLayer.abort(AckFilterLayer.java:130) 
     at org.jenkinsci.remoting.protocol.impl.AckFilterLayer.onRecv(AckFilterLayer.java:258) 
     at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.onRecv(ProtocolStack.java:669) 
     at org.jenkinsci.remoting.protocol.NetworkLayer.onRead(NetworkLayer.java:136) 
     at org.jenkinsci.remoting.protocol.impl.BIONetworkLayer.access$2200(BIONetworkLayer.java:48) 

我們花了很多時間試圖解決這個問題。可惜沒有成功。

你有什麼想法可能導致這個問題,如何解決?

+0

詹金斯以前的版本是什麼?什麼是你使用的認證機制? LDAP,內部數據庫還是其他? –

回答

0

您需要檢查節點的密鑰是否完好無損。如果不正確,您必須下載slave.jar並使用新的jar文件從命令行運行代理。

java -jar slave.jar -jnlpUrl http://<ipaddress>:8080/computer/<computername>/slave-agent.jnlp -secret 340d54sdrgtjj334kelkahsdjkf83f1c5120dc2fb74939fcdb7f05e1926049f8d7991 

同時檢查已安裝的Java版本是> 7

1

最近,我們使用JNLP遠程集成測試打到這個問題與我們基於AWS-詹金斯。遠程從服務器將回叫Jenkins主服務器,該服務器出現類似錯誤時失敗。此問題最終成爲了Jenkins Master動態生成的類型爲HTTP的AWS ELB(因爲Kubernetes ELB供應商目前不支持多協議ELB)。我們必須手動將ELB的JNLP入口端口類型更改爲TCP,而Web界面入口「實例端口」的協議爲HTTP,「負載均衡器」的協議爲HTTPS

+0

JNLP協議是二進制的,而不是HTTP;這並不明顯,因爲如果您發送GET請求,偵聽器有特殊情況發送虛擬HTTP響應。您不能將HTTP代理放置在JNLP偵聽器之前。如果這樣做,「錯誤的確認序列」是您碰巧遇到的錯誤消息。 –

相關問題