• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Blocker Blocker
    • core

      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)

          [JENKINS-28499] tcpSlaveAgentListener not found

          Nacho Llorens added a comment -

          Same thing here. Is there a workaround for this?

          Nacho Llorens added a comment - Same thing here. Is there a workaround for this?

          Oleg Nenashev added a comment -

          We have improved the thread failover in 2.85: JENKINS-38711. naensma christiancavegn are you running with 2.89.x LTS?

          Oleg Nenashev added a comment - We have improved the thread failover in 2.85: JENKINS-38711 . naensma christiancavegn are you running with 2.89.x LTS?

          Nacho Llorens added a comment -

          Yes, I tried with 2.89.x lts docker image.

          Nacho Llorens added a comment - Yes, I tried with 2.89.x lts docker image.

          Oleg Nenashev added a comment -

          naensma please check system logs. If the thread dies after the Jenkins startup, there should be always a message

          Oleg Nenashev added a comment - naensma please check system logs. If the thread dies after the Jenkins startup, there should be always a message

          Nacho Llorens added a comment - - edited

          oleg_nenashev I dont see any stack trace in the System logs when Jenkins start.

          Everything seems fine. The config has port assigned in the security config page but the page is still not found.

          Is there a somewhat recent version I can workaround with?

          Nacho Llorens added a comment - - edited oleg_nenashev I dont see any stack trace in the System logs when Jenkins start. Everything seems fine. The config has port assigned in the security config page but the page is still not found. Is there a somewhat recent version I can workaround with?

          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.

          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?

          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

          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 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 added a comment - JENKINS-53461 is Jenkins Remoting should address this issue for Cloud-Native platforms by removing reliance on the TCP endpoint

          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/

           

          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/  

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

              Created:
              Updated: