Repository navigation
[JENKINS-10057] install-plugin CLI does not indicate failures & return code 0 #15908
Description
Hi,
I am trying to script installation of plugins on a jenkins instance, in the best case scenario, my script works as expected; but if there are any failures, then from the CLI we get no information, we don't even the install-plugin command failed. This makes it very hard to automate reliably.
/tmp # java -jar jenkins-cli.jar -s http://localhost:8080/jenkins install-plugin violations
Installing violations from update center
tmp # echo $?
0
if I go to the update center through the GUI, then:
1) I can see it failed
2) I get a hint that my proxy settings are wrong
3) I get some stack trace
java.net.ConnectException: Connection timed out
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139)
at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:566)
at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:849)
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:957)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:832)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
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)
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2304)
at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:579)
at java.net.URLConnection.getContentLength(URLConnection.java:474)
at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:565)
... 9 more
chat log:
[02:56:14] hi
[02:56:49] I have a problem with the cli, I've looked through the open bugs and I'm not sure the issue is already mentioned
[02:57:04] I do 'java -jar ... install-plugin foobar'
[02:57:29] then it says "Installing foobar from update center"
[02:57:42] but that actually fails because of proxy issues
[02:57:48] cli doesn't complain
[02:57:56] and cli returns 0 as return code
[02:58:04] Starting build 897 for job jenkins_main_trunk (previous build: SUCCESS)
[03:00:37] *** sshaw has joined #jenkins
[03:03:15] *** geronimo_ has quit IRC
[03:03:48] damien___: good point. I think it's because CLI doesn't actually wait for the completion of the installation
[03:03:52] It just submits the job and then returns
[03:04:05] okay
[03:04:20] so these cannot be automated safely as of now
[03:05:00] thanks, I will submit a bug report tomorrow morning
[03:05:10] thank you
[03:05:18] I think I have a scenario to repro
[03:05:39] (in my case fails when no proxy set, so it should fail all the time if a bad proxy is set)
[03:06:06] thanks
[03:06:13] *** damien___ has quit IRC
to reproduce:
1) set your proxy settings to something you expect not to work.
2) cli command install-plugin violations (or any existing plugin)
Originally reported by
dnozay, imported from: install-plugin CLI does not indicate failures & return code 0
- status: Resolved
- priority: Major
- component(s): cli, plugin-proposals
- resolution: Fixed
- resolved: 2011-08-10T01:51:20+00:00
- votes: 0
- watchers: 0
- imported: 2025-11-24
Raw content of original issue
Hi,
I am trying to script installation of plugins on a jenkins instance, in the best case scenario, my script works as expected; but if there are any failures, then from the CLI we get no information, we don't even the install-plugin command failed. This makes it very hard to automate reliably.
/tmp # java -jar jenkins-cli.jar -s http://localhost:8080/jenkins install-plugin violations Installing violations from update center tmp # echo $? 0
if I go to the update center through the GUI, then: 1) I can see it failed 2) I get a hint that my proxy settings are wrong 3) I get some stack trace
java.net.ConnectException: Connection timed out at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:566) at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:849) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:957) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:832) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 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) Caused by: java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.http.HttpClient.<init>(HttpClient.java:233) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.http.HttpClient.New(HttpClient.java:323) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172) at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2304) at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:579) at java.net.URLConnection.getContentLength(URLConnection.java:474) at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:565) ... 9 more
chat log:
[02:56:14] <damien___> hi [02:56:49] <damien___> I have a problem with the cli, I've looked through the open bugs and I'm not sure the issue is already mentioned [02:57:04] <damien___> I do 'java -jar ... install-plugin foobar' [02:57:29] <damien___> then it says "Installing foobar from update center" [02:57:42] <damien___> but that actually fails because of proxy issues [02:57:48] <damien___> cli doesn't complain [02:57:56] <damien___> and cli returns 0 as return code [02:58:04] <jenkinsci_builds> Starting build 897 for job jenkins_main_trunk (previous build: SUCCESS) [03:00:37] *** sshaw has joined #jenkins [03:03:15] *** geronimo_ has quit IRC [03:03:48] <kohsuke> damien___: good point. I think it's because CLI doesn't actually wait for the completion of the installation [03:03:52] <kohsuke> It just submits the job and then returns [03:04:05] <damien___> okay [03:04:20] <damien___> so these cannot be automated safely as of now [03:05:00] <damien___> thanks, I will submit a bug report tomorrow morning [03:05:10] <kohsuke> thank you [03:05:18] <damien___> I think I have a scenario to repro [03:05:39] <damien___> (in my case fails when no proxy set, so it should fail all the time if a bad proxy is set) [03:06:06] <damien___> thanks [03:06:13] *** damien___ has quit IRC
to reproduce: 1) set your proxy settings to something you expect not to work. 2) cli command install-plugin violations (or any existing plugin)
Activity
jenkins-infra-bot commentedon Aug 10, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
changelog.html
core/src/main/java/hudson/cli/InstallPluginCommand.java
core/src/main/java/hudson/model/UpdateCenter.java
http://jenkins-ci.org/commit/jenkins/b37588920dcb790863587342bc598c5dea096b02
Log:
[FIXED JENKINS-10057] capture the failure to install a plugin better
jenkins-infra-bot commentedon Aug 10, 2011
Raw content of original comment:
Integrated in
jenkins_main_trunk #1037
[FIXED JENKINS-10057] capture the failure to install a plugin better
Kohsuke Kawaguchi : b37588920dcb790863587342bc598c5dea096b02
Files :
jenkins-infra-bot commentedon Sep 12, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
changelog.html
core/src/main/java/hudson/cli/InstallPluginCommand.java
core/src/main/java/hudson/model/UpdateCenter.java
http://jenkins-ci.org/commit/jenkins/b37588920dcb790863587342bc598c5dea096b02
Log:
[FIXED JENKINS-10057] capture the failure to install a plugin better
jenkins-infra-bot commentedon Oct 20, 2011
Raw content of original comment:
Code changed in jenkins
User: Kohsuke Kawaguchi
Path:
changelog.html
core/src/main/java/hudson/cli/InstallPluginCommand.java
core/src/main/java/hudson/model/UpdateCenter.java
http://jenkins-ci.org/commit/jenkins/b37588920dcb790863587342bc598c5dea096b02
Log:
[FIXED JENKINS-10057] capture the failure to install a plugin better