-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Hudson 1.391 running as system service on SUSE Linux Enterprise 10 x86_64. Configured multiple slaves, affected are AIX 5.2 - 7.1 on ppc64.
Currently I install a recent JDK on every machine we add to our Hudson as a slave. As this number grows and as new Java versions are being released I intended reconfigure the machines to use the JDK from a configured tool location. I started with the AIX machines and failed immediately:
AIX aixrds04 3 5 XXXXXXXXXXXX
hudson.util.IOException2: Could not find any known supported java version in [java, /usr/bin/java, /usr/java/default/bin/java, /usr/java/latest/bin/java, /usr/local/bin/java, /usr/local/java/bin/java, /RDS/HUDSON/jdk/bin/java, /opt/fun/JDK/bin/java], and we also failed to install JDK as a fallback
at hudson.plugins.sshslaves.SSHLauncher.resolveJava(SSHLauncher.java:230)
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:184)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
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:619)
Caused by: java.io.IOException: Failed to detect the environment for automatic JDK installation. Please report this to users@hudson.dev.java.net: AIX aixrds04 3 5 XXXXXXXXXXXX
at hudson.plugins.sshslaves.SSHLauncher.attemptToInstallJDK(SSHLauncher.java:281)
at hudson.plugins.sshslaves.SSHLauncher.resolveJava(SSHLauncher.java:228)
... 7 more
Reviewing SSHLauncher.java I found a possible quick fix and think there should be time to also review the whole "mechanic" to make it right ...
1) The possible quick fix would be to prepend the slave's JAVA_HOME env property to the javas list (in SSHLauncher$DefaultJavaProvider.getJavas()). This way I could install the JDKs on some NFS drive and be sure they will be found before any random matching java which might be installed on the system.
2) The right solution would of cause be to enable SSHLauncher.attemptToInstallJDK() to also support JDK installations on AIX, and - for me at least - also HP-UX. It would be sufficient to be able to provide a zip on the master which just gets unzipped on the slave, then. No need for fancy platform/cpu detection code.
BTW: For HP-UX on PA-RISC the "uname -a" output is "HP-UX hprds2t B.11.23 U 9000/800 0000000000 unlimited-user license" and on Itanium it is "HP-UX hprds6t B.11.31 U ia64 0000000000 unlimited-user license"...
Thanks
– Matthias Kraft
- is related to
-
JENKINS-4669 Ability to specifiy the vm on the slave
- Closed
-
JENKINS-3853 Suggestion for alternative way of specifying JVM location
- Closed