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

GUI-mode JNLP slave does not reconnect after Jenkins restart (UnixSlaveRestarter broken)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • core
    • 1.580.1, Ubuntu 14.10, Java 8u25

      I run jenkins.war and create a JNLP slave. I click Launch and download the slave-agent.jnlp file. From a shell, I run javaws slave-agent.jnlp. (Starting it from the browser does not work in my case, perhaps due to the browser not finding the right version of javaws.) The slave agent starts up fine and is connected.

      Now I restart Jenkins. Suddenly the regular slave window closed, to be replaced by a Web Start dialog

      Unable to launch the application.

      The (wrapped) exception is as follows:

      java.io.FileNotFoundException: /tmp/javawogPqsh (No such file or directory)
      	at java.io.FileInputStream.open(Native Method)
      	at java.io.FileInputStream.<init>(FileInputStream.java:138)
      	at java.io.FileInputStream.<init>(FileInputStream.java:93)
      	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(Thread.java:745)
      

      I am not sure what this means; the JNLP process was already launched before, so it should not be trying to launch it again, just make a new connection. Perhaps the slave agent (this is Remoting 2.47) is attempting to restart the entire JVM? Via UnixSlaveRestarter?

      The same problem occurs if I use

      javaws http://localhost:8080/jenkins/computer/someslave/slave-agent.jnlp
      

      without using the browser, so it is not simply a problem of the browser discarding a temporary file. But

      java -jar slave.jar -jnlpUrl http://localhost:8080/jenkins/computer/someslave/slave-agent.jnlp
      

      works fine: the agent retries the connection after ten seconds as expected.

            Unassigned Unassigned
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: