-
Bug
-
Resolution: Fixed
-
Critical
-
Linux
Jenkins can not restart after plugin update if jenkins' java is started with 'java' and without full path.
It doesn't rexec itself with the following logs:
Warnung: Failed to restart Jenkins
java.io.IOException: Failed to exec 'java' Datei oder Verzeichnis nicht gefunden
at hudson.lifecycle.UnixLifecycle.restart(UnixLifecycle.java:84)
at jenkins.model.Jenkins$24.run(Jenkins.java:3337)
It seems to be caused by this recent change:
https://github.com/jenkinsci/jenkins/commit/547d4ed8d35de6be4b2788e4816019bb8cc94902#diff-1df54b5ad5f99455e21579688db5be50
From a quick look I guess this could be fixed by using execvp instead of execv as below:
- LIBC.execv(exe, new StringArray(args.toArray(new String[args.size()])));
+ LIBC.execvp(exe, new StringArray(args.toArray(new String[args.size()])));
I understand that for those calling java as /usr/bin/java the execv approach should work, but without the full path it should still work IMHO.
Thanks,
Simon
The change as described above does indeed break things which have been working fine before.
The jenkins docs show how it should be possible to start it:
https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
That way you can start it but it won't restart after updating plugins - it hangs instead.