-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Redhat Linux
ssh-slaves fails to launch because JDKInstaller. See below the output.
[08/12/11 14:01:32] [SSH] Checking java version of /usr/bin/java
Couldn't figure out the Java version of /usr/bin/java
bash: /usr/bin/java: No such file or directory
[08/12/11 14:01:32] [SSH] Checking java version of /usr/java/default/bin/java
Couldn't figure out the Java version of /usr/java/default/bin/java
bash: /usr/java/default/bin/java: No such file or directory
[08/12/11 14:01:32] [SSH] Checking java version of /usr/java/latest/bin/java
Couldn't figure out the Java version of /usr/java/latest/bin/java
bash: /usr/java/latest/bin/java: No such file or directory
[08/12/11 14:01:32] [SSH] Checking java version of /usr/local/bin/java
Couldn't figure out the Java version of /usr/local/bin/java
bash: /usr/local/bin/java: No such file or directory
[08/12/11 14:01:32] [SSH] Checking java version of /usr/local/java/bin/java
Couldn't figure out the Java version of /usr/local/java/bin/java
bash: /usr/local/java/bin/java: No such file or directory
[08/12/11 14:01:32] [SSH] Checking java version of /hudson/jdk/bin/java
Couldn't figure out the Java version of /hudson/jdk/bin/java
bash: /hudson/jdk/bin/java: No such file or directory
Linux cu003.h.sp.collab.net 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 EDT 2010 i686 i686 i386 GNU/Linux
Installing JDK jdk-6u16-oth-JPR@CDS-CDS_Developer
Downloading JDK from http://download.oracle.com/otn/java/jdk/6u16-b01//jdk-6u16-linux-i586.bin
ERROR: Unexpected error in launching a slave. This is probably a bug in Hudson.
java.lang.OutOfMemoryError: Java heap space
at org.apache.commons.io.output.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:271)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:219)
at com.gargoylesoftware.htmlunit.WebResponseData.getBody(WebResponseData.java:133)
at com.gargoylesoftware.htmlunit.WebResponseData.<init>(WebResponseData.java:86)
at com.gargoylesoftware.htmlunit.HttpWebConnection.newWebResponseDataInstance(HttpWebConnection.java:443)
at com.gargoylesoftware.htmlunit.HttpWebConnection.makeWebResponse(HttpWebConnection.java:423)
at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:100)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1456)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1387)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1513)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1387)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1513)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1387)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1513)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1387)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1513)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1387)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:328)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:357)
at com.gargoylesoftware.htmlunit.html.HtmlForm.submit(HtmlForm.java:196)
at hudson.tools.JDKInstaller.locate(JDKInstaller.java:388)
at hudson.plugins.sshslaves.SSHLauncher.attemptToInstallJDK(SSHLauncher.java:292)
at hudson.plugins.sshslaves.SSHLauncher.resolveJava(SSHLauncher.java:228)
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:184)
at com.collabnet.hudson.CubitLauncher.launch(CubitLauncher.java:70)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:199)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
- is duplicated by
-
JENKINS-10811 Copy to slave fails with outOfMemoryError
-
- Resolved
-
I'm having similar issues when a job attempts to download a JDK on my master node. This has only occurred for me in recent versions of Jenkins after the oracle login change. Looking at the JDKInstaller source I've noticed the following suspicious comment in the locate(...) method;
// TODO: there's awful inefficiency in htmlunit where it loads the whole binary into one big byte array.
// needs to modify it to use temporary file or something
https://github.com/jenkinsci/jenkins/blob/6f335c3d7e30cc7b96b09c3be3b74c526b06cb05/core/src/main/java/hudson/tools/JDKInstaller.java
So it seems like the entire JDK binary is loaded into a byte array before being saved to disk. This certainly seems likely to cause issues.