Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-28499

tcpSlaveAgentListener not found

    XMLWordPrintable

Details

    Description

      Upgraded from 1.599 to 1.614.
      JNLP slaves now fail to connect with following error, where <HOST> is my actual host.
      SSH slaves are unaffected.

      May 20, 2015 10:57:51 AM hudson.remoting.jnlp.Main$CuiListener error
      SEVERE: https://<HOST>/tcpSlaveAgentListener/ is invalid: 404 Not Found
      java.lang.Exception: https://<HOST>/tcpSlaveAgentListener/ is invalid: 404 Not Found
      at hudson.remoting.Engine.run(Engine.java:214)

      Attachments

        Issue Links

          Activity

            oleg_nenashev Yes, i'm running LTS. I just saw that i entered a wrong version number, it's 2.89.2 of course, sorry about that.

            Please tell me if i shoud try another version / how i can provide additional information.

            christiancavegn Christian Cavegn added a comment - oleg_nenashev  Yes, i'm running LTS. I just saw that i entered a wrong version number, it's 2.89.2 of course, sorry about that. Please tell me if i shoud try another version / how i can provide additional information.

            oleg_nenashev naensma I think i just found some kind of solution:

            When i enter my connection string as 'Jenkins Tunnel' instead of 'Jenkins URL', my clients seem to be able to connect to the master.

            Does this make any sense?

            christiancavegn Christian Cavegn added a comment - oleg_nenashev naensma I think i just found some kind of solution: When i enter my connection string as 'Jenkins Tunnel' instead of 'Jenkins URL', my clients seem to be able to connect to the master. Does this make any sense?

            I am hitting the same issue. 

            Background

            Jenkins is running in an on premise kubernetes cluster.

            NAME     READY     STATUS    RESTARTS   AGE     IP                NODE 
            jenkins-0 1/1          Running   0                 5s        10.43.0.2     nem-docker-app-node05.inter-olymp.local

            There are two service exposed as NodePort. One for jenkins using NodePort 30100 and one for the slave port using 30200, which is set to 50000

            NAME                   TYPE                 CLUSTER-IP           EXTERNAL-IP    PORT(S)                    AGE     SELECTOR
            jenkins                  NodePort         10.96.191.11          <none>            8080:30100/TCP       8s        app=jenkins
            jenkins-agents      NodePort         10.108.78.226        <none>            50000:30200/TCP     8s        app=jenkins

            I browse to my Jenkins instance using port 30100, e.g. http://build.mydomain.com:30100 and create a new permanent agent called test.

            What I Expected

            Execute the following command and the slave agent connects to Jenkins.

            java -jar agent.jar -jnlpUrl http://build.mydomain.com:30100/computer/test/slave-agent.jnlp -secret c80dc7812095e908d9807b83dbb7406f03f8274f83f70ca407e9fcec2665ed7a -workDir "C:\Jenkins"

            What Happened

            I get a 404 not found.

            Oct 19, 2018 9:57:45 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
            INFO: Using C:\Jenkins\remoting as a remoting work directory
            Both error and output logs will be printed to C:\Jenkins\remoting
            Failing to obtain http://build.mydomain.com:30100/computer/test/slave-agent.jnlp?encrypt=true
            java.io.IOException: Failed to load http://build.mydomain.com:30100/computer/test/slave-agent.jnlp?encrypt=true: 404 Not Found
            at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:496)
            at hudson.remoting.Launcher.run(Launcher.java:322)
            at hudson.remoting.Launcher.main(Launcher.java:283)

            Additional Info

            Browsing to http://build.mydomain.com:30200>/ gives

            Jenkins-Agent-Protocols: JNLP4-connect, Ping
            Jenkins-Version: 2.121.3
            Jenkins-Session: bb58e25a
            Client: 10.42.0.0
            Server: 10.43.0.2
            Remoting-Minimum-Version: 2.60

            So I am not sure what is going on here. The agent port is reachable through NodePort 30200. It sends traffic to 50000. But the slave-agent.jnlp is not found

            nemligtim Timothy Harris added a comment - I am hitting the same issue.  Background Jenkins is running in an on premise kubernetes cluster. NAME     READY     STATUS    RESTARTS   AGE     IP                NODE  jenkins-0 1/1          Running   0                 5s        10.43.0.2     nem-docker-app-node05.inter-olymp.local There are two service exposed as NodePort . One for jenkins using NodePort 30100 and one for the slave port using 30200, which is set to 50000 NAME                   TYPE                 CLUSTER-IP           EXTERNAL-IP    PORT(S)                    AGE     SELECTOR jenkins                  NodePort         10.96.191.11          <none>            8080:30100/TCP       8s        app=jenkins jenkins-agents      NodePort         10.108.78.226        <none>            50000:30200/TCP     8s        app=jenkins I browse to my Jenkins instance using port 30100, e.g. http://build.mydomain.com:30100  and create a new permanent agent called test. What I Expected Execute the following command and the slave agent connects to Jenkins. java -jar agent.jar -jnlpUrl http://build.mydomain.com:30100/computer/test/slave-agent.jnlp -secret c80dc7812095e908d9807b83dbb7406f03f8274f83f70ca407e9fcec2665ed7a -workDir "C:\Jenkins" What Happened I get a 404 not found. Oct 19, 2018 9:57:45 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir INFO: Using C:\Jenkins\remoting as a remoting work directory Both error and output logs will be printed to C:\Jenkins\remoting Failing to obtain http://build.mydomain.com:30100/computer/test/slave-agent.jnlp?encrypt=true java.io.IOException: Failed to load http://build.mydomain.com:30100/computer/test/slave-agent.jnlp?encrypt=true: 404 Not Found at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:496) at hudson.remoting.Launcher.run(Launcher.java:322) at hudson.remoting.Launcher.main(Launcher.java:283) Additional Info Browsing to  http://build.mydomain.com :30200>/ gives Jenkins-Agent-Protocols: JNLP4-connect, Ping Jenkins-Version: 2.121.3 Jenkins-Session: bb58e25a Client: 10.42.0.0 Server: 10.43.0.2 Remoting-Minimum-Version: 2.60 So I am not sure what is going on here. The agent port is reachable through NodePort 30200. It sends traffic to 50000. But the slave-agent.jnlp is not found
            oleg_nenashev Oleg Nenashev added a comment -

            JENKINS-53461 is Jenkins Remoting should address this issue for Cloud-Native platforms by removing reliance on the TCP endpoint

            oleg_nenashev Oleg Nenashev added a comment - JENKINS-53461 is Jenkins Remoting should address this issue for Cloud-Native platforms by removing reliance on the TCP endpoint
            billwang Bill Wang added a comment - - edited

            I hit the same issue, but finally fixed because I hit the wrong port

            there are two default ports: 8080 and 50000 

            50000 is jnlp port, but when you connect to tcpSlaveAgentListener, you should use 8080

             curl localhost:8080/tcpSlaveAgentListener/

             

            billwang Bill Wang added a comment - - edited I hit the same issue, but finally fixed because I hit the wrong port there are two default ports: 8080 and 50000  50000 is jnlp port, but when you connect to  tcpSlaveAgentListener , you should use 8080 curl localhost:8080/tcpSlaveAgentListener/  

            People

              Unassigned Unassigned
              jameshowe James Howe
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: