Skip to content

[JENKINS-10057] install-plugin CLI does not indicate failures & return code 0 #15908

Closed

Description

@jenkins-infra-bot

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

  1. jenkins-infra-bot commented on Aug 10, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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

  2. jenkins-infra-bot commented on Aug 10, 2011

    @jenkins-infra-bot
    Author
    dogfood:

    Integrated in jenkins_main_trunk #1037
    [FIXED JENKINS-10057] capture the failure to install a plugin better

    Kohsuke Kawaguchi : b37588920dcb790863587342bc598c5dea096b02
    Files :

    • changelog.html
    • core/src/main/java/hudson/model/UpdateCenter.java
    • core/src/main/java/hudson/cli/InstallPluginCommand.java
  3. jenkins-infra-bot commented on Sep 12, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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

  4. jenkins-infra-bot commented on Oct 20, 2011

    @jenkins-infra-bot
    Author
    scm_issue_link:

    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

  5. removed
    bugFor changelog: Minor bug. Will be listed after features
    on Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions