Problems adding a slave agent to Jenkins (java.io.IOException: https://myjenkins.org/tcpSlaveAgentListener/ is invalid: 404 Not Found)

2,142 views
Skip to first unread message

Martin Blankenstein

unread,
Apr 30, 2018, 3:20:46 AM4/30/18
to Jenkins Users
Hello dear community (sry for the multiple posts/spam - couldn't change the post :-/),

We use Jenkins 2.118 and I tried adding a Windows Machine (and my later my notebook) as a slave/remoting agent.

First I added a new Node in the Jenkins configuration "MartinsLaptopWin10". There I only could select "static agent".

Starting this one results in an error:

BadFieldException[ Feld <jnlp><application-desc><argument> weist einen ungültigen Wert auf: ,]
at com.sun.javaws.jnl.XMLFormat$10.visitElement(Unknown Source)
at com.sun.javaws.jnl.XMLUtils.visitElements(Unknown Source)
at com.sun.javaws.jnl.XMLFormat.buildApplicationDesc(Unknown Source)
at com.sun.javaws.jnl.XMLFormat.process(Unknown Source)
at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source)
at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 
Even if I removed the empty arguments from the jnlp-file I get an error (downloding the remoting.jar with the link from the exceptions works fine):

com.sun.deploy.net.FailedDownloadException: Ressource konnte nicht geladen werden: https://myjenkins.de/jnlpJars/remoting.jar
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.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)
+
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.access$200(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$9.run(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$9.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessController.doPrivilegedWithCombiner(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at com.sun.deploy.net.HttpUtils.followRedirects(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doGetRequest(Unknown Source)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.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)




docker run jenkins/jnlp-slave -url https://myjenkins.de asdsadsadsadsad MartinsLaptopWin10

This results in the following error:

Warning: JnlpProtocol3 is disabled by default, use JNLP_PROTOCOL_OPTS to alter the behavior
Apr 30, 2018 6:30:00 AM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: MartinsLaptopWin10
Apr 30, 2018 6:30:00 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Apr 30, 2018 6:30:00 AM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 3.19
Apr 30, 2018 6:30:00 AM hudson.remoting.Engine startEngine
WARNING: No Working Directory. Using the legacy JAR Cache location: /home/jenkins/.jenkins/cache/jars
Apr 30, 2018 6:30:00 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://myjenkins.de]
Apr 30, 2018 6:30:00 AM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: https://myjenkins.de/tcpSlaveAgentListener/ is invalid: 404 Not Found
java.io.IOException: https://myjenkins.de/tcpSlaveAgentListener/ is invalid: 404 Not Found
        at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:197)
        at hudson.remoting.Engine.innerRun(Engine.java:518)
        at hudson.remoting.Engine.run(Engine.java:469)

I couldn't find another way in the docu

Thanks for your help!
Martin

Martin Blankenstein

unread,
Apr 30, 2018, 8:53:02 AM4/30/18
to Jenkins Users
Thanks you Andreas Tscharner:

Is the TCP port on the master (Manage Jenkins -> Global Security -> 
Agents) set to static? 
       
The option was disabled and I set it to auto.


After that I got a handshake error when starting (with java 1.8.0_152):

java -jar agent.jar -jnlpUrl https://myjenkins.de/computer/MartinsLaptopWin10/slave-agent.jnlp -secret asdad -workDir "c:/tmpmy/jenkins"

Apr 30, 2018 2:45:07 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFORMATION: Using c:\tmpmy\jenkins\remoting as a remoting work directory
Both error and output logs will be printed to c:\tmpmy\jenkins\remoting
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2033)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1135)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
        at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:490)
        at hudson.remoting.Launcher.run(Launcher.java:322)
        at hudson.remoting.Launcher.main(Launcher.java:283)
 

Or I receive a connection timeout error when starting (with java 1.8.0_171):

Apr 30, 2018 2:47:01 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFORMATION: Using c:\tmpmy\jenkins\remoting as a remoting work directory
Both error and output logs will be printed to c:\tmpmy\jenkins\remoting
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main createEngine
INFORMATION: Setting up agent: MartinsLaptopWin10
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main$CuiListener <init>
INFORMATION: Jenkins agent is running in headless mode.
Apr 30, 2018 2:47:02 PM hudson.remoting.Engine startEngine
INFORMATION: Using Remoting version: 3.20
Apr 30, 2018 2:47:02 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFORMATION: Using c:\tmpmy\jenkins\remoting as a remoting work directory
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main$CuiListener status
INFORMATION: Locating server among [https://myjenkins.de/]
Apr 30, 2018 2:47:02 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFORMATION: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main$CuiListener status
INFORMATION: Agent discovery successful
  Agent address: myjenkins.de
  Agent port:    35047
  Identity:      50:de:c0:0d:66:f6:56:26:55:61:9f:92:63:13:61:4a
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main$CuiListener status
INFORMATION: Handshaking
Apr 30, 2018 2:47:02 PM hudson.remoting.jnlp.Main$CuiListener status
INFORMATION: Connecting tomyjenkins.de:35047
Apr 30, 2018 2:47:33 PM hudson.remoting.jnlp.Main$CuiListener status
INFORMATION: Connecting to myjenkins.de:35047 (retrying:2)
java.io.IOException: Failed to connect to myjenkins.de:35047
        at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:242)
        at hudson.remoting.Engine.connect(Engine.java:686)
        at hudson.remoting.Engine.innerRun(Engine.java:547)
        at hudson.remoting.Engine.run(Engine.java:469)
Caused by: java.net.ConnectException: Connection timed out: connect
        at sun.nio.ch.Net.connect0(Native Method)
        at sun.nio.ch.Net.connect(Unknown Source)
        at sun.nio.ch.Net.connect(Unknown Source)
        at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
        at java.nio.channels.SocketChannel.open(Unknown Source)
        at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:203)
        ... 3 more


OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode) 
is used to run Jenkins on the server.

I tried different JREs on the agent machine because I found this (even if the server JRE isn't 162+).

You know what I missed this time?

Thanks a lot!
Martin

Martin Blankenstein

unread,
May 2, 2018, 4:59:04 AM5/2/18
to Jenkins Users
Hi again,

no it works.

I needed to update the JRE on the windows machine (SSLHandshakeException).
And the firewall wasn't configured for the "fixed" jnlp-port (Failed to connect).

Thank you,
Martin
Reply all
Reply to author
Forward
0 new messages