Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-61693

using git multi branch pipeline through proxy leads to fatal: unable to access

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Blocker
    • Resolution: Not A Defect
    • core
    • None
    • latest Jenkins LTS Jenkins ver. 2.222.1
      git plugin
      multi branch pipeline
      need proxy to use SCM (bitbucket)

    Description

      have update from Jenkins LTS Jenkins ver. 2.204.5 to the latest LTS: Jenkins ver. 2.222.1

      now my git multi branch pipeline through proxy doesn't work anymore

      with Jenkins ver. 2.204.5 it was working fine:

      Started by user testuser
      [Thu Mar 26 14:22:58 CET 2020] Starting branch indexing...
       > git.exe --version # timeout=10
      using GIT_ASKPASS to set credentials 
      Setting http proxy: proxy.*****.com:8080
       > git.exe ls-remote --symref -- https://bitbucket.mydev.com/scm/ici/infrastructuredotnet.git # timeout=10
      ERROR: [Thu Mar 26 14:22:58 CET 2020] Could not update folder level actions from source 4ad1ee05-7f07-477a-a003-aa5b11127210
      hudson.plugins.git.GitException: Command "git.exe ls-remote --symref -- https://bitbucket.mydev.com/scm/ici/infrastructuredotnet.git" returned status code 128:
      stdout: 
      stderr: fatal: unable to access 'https://bitbucket.mydev.com/scm/ici/infrastructuredotnet.git/': Received HTTP code 407 from proxy after CONNECT
      
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2430)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2044)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1944)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1935)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getRemoteSymbolicReferences(CliGitAPIImpl.java:3360)
      	at jenkins.plugins.git.AbstractGitSCMSource.retrieveActions(AbstractGitSCMSource.java:1121)
      	at jenkins.scm.api.SCMSource.fetchActions(SCMSource.java:848)
      	at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:598)
      	at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:277)
      	at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:164)
      	at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:428)
      [Thu Mar 26 14:22:58 CET 2020] Finished branch indexing. Indexing took 0.5 sec
      FATAL: Failed to recompute children of Infrastructure
      hudson.plugins.git.GitException: Command "git.exe ls-remote --symref -- https://bitbucket.mydev.com/scm/ici/infrastructuredotnet.git" returned status code 128:
      stdout: 
      stderr: fatal: unable to access 'https://bitbucket.mydev.com/scm/ici/infrastructuredotnet.git/': Received HTTP code 407 from proxy after CONNECT
      
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2430)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2044)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1944)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1935)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getRemoteSymbolicReferences(CliGitAPIImpl.java:3360)
      	at jenkins.plugins.git.AbstractGitSCMSource.retrieveActions(AbstractGitSCMSource.java:1121)
      	at jenkins.scm.api.SCMSource.fetchActions(SCMSource.java:848)
      	at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:598)
      	at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:277)
      	at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:164)
      	at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:1032)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:428)
      Finished: FAILURE
      

      Attachments

        1. screenshot-1.png
          screenshot-1.png
          673 kB
        2. screenshot-2.png
          screenshot-2.png
          535 kB
        3. screenshot-3.png
          screenshot-3.png
          41 kB

        Issue Links

          Activity

            thomaspatzig Thomas Patzig added a comment -

            maybe there is a similar issue

            thomaspatzig Thomas Patzig added a comment - maybe there is a similar issue
            markewaite Mark Waite added a comment -

            Did you also change the version of the Jenkins git plugin in that upgrade?

            As far as I understand from JENKINS-51039, proxy settings are ignored by 'lightweight checkout' and other multibranch pipeline code.

            markewaite Mark Waite added a comment - Did you also change the version of the Jenkins git plugin in that upgrade? As far as I understand from JENKINS-51039 , proxy settings are ignored by 'lightweight checkout' and other multibranch pipeline code.
            thomaspatzig Thomas Patzig added a comment - - edited

            markewaite
            I don't do an upgrade. I test a fresh setup of Jenkins. Add proxy server and add plugins...

            I'm not sure with the other issue: JENKINS-51039
            but it happened with: lts 2.107.2

            my setup works with Jenkins LTS ver. 2.204.5
            and works no longer with Jenkins LTS ver. 2.222.1

            thomaspatzig Thomas Patzig added a comment - - edited markewaite I don't do an upgrade. I test a fresh setup of Jenkins. Add proxy server and add plugins... I'm not sure with the other issue: JENKINS-51039 but it happened with: lts 2.107.2 my setup works with Jenkins LTS ver. 2.204.5 and works no longer with Jenkins LTS ver. 2.222.1
            markewaite Mark Waite added a comment -

            Based on the bug report that you linked ( JENKINS-61692 ), I would guess that the proxy settings are not defined, since the validation failed with an NPE.

            If you're willing to experiment, you could try inserting the proxy definition from the working Jenkins configuration files of 2.204.5 into the XML config files of Jenkins 2.222.1. That might avoid the validation failure and assure that a proxy is defined.

            markewaite Mark Waite added a comment - Based on the bug report that you linked ( JENKINS-61692 ), I would guess that the proxy settings are not defined, since the validation failed with an NPE. If you're willing to experiment, you could try inserting the proxy definition from the working Jenkins configuration files of 2.204.5 into the XML config files of Jenkins 2.222.1. That might avoid the validation failure and assure that a proxy is defined.
            thomaspatzig Thomas Patzig added a comment -

            ...ok, let me try it...

            thomaspatzig Thomas Patzig added a comment - ...ok, let me try it...
            thomaspatzig Thomas Patzig added a comment -

            secretPassword is no longer stored in proxy.xml
            is this the reason?

            thomaspatzig Thomas Patzig added a comment - secretPassword is no longer stored in proxy.xml is this the reason?
            markewaite Mark Waite added a comment -

            danielbeck has proposed PR 4607 to Jenkins core that I believe addresses this issue. It would be a great help if you could download the pull request build and run it in your environment to confirm the issue is resolved.

            Note that the pull request build will be deleted shortly after the pull request is merged. Once the pull request is merged, the fix will be included in the next weekly release (likely Jenkins 2.229).

            markewaite Mark Waite added a comment - danielbeck has proposed PR 4607 to Jenkins core that I believe addresses this issue. It would be a great help if you could download the pull request build and run it in your environment to confirm the issue is resolved. Note that the pull request build will be deleted shortly after the pull request is merged. Once the pull request is merged, the fix will be included in the next weekly release (likely Jenkins 2.229).
            danielbeck Daniel Beck added a comment -

            My PR only addresses the form validation. I thought I saw something that would cause this problem, but it appears not the case.

            danielbeck Daniel Beck added a comment - My PR only addresses the form validation. I thought I saw something that would cause this problem, but it appears not the case.
            danielbeck Daniel Beck added a comment -

            secretPassword is no longer stored in proxy.xml

            I am unable to reproduce this on 2.222.1. The password is always stored after form submission. Are you using Groovy init hook scripts, or Configuration-as-Code to define your proxy?

            danielbeck Daniel Beck added a comment - secretPassword is no longer stored in proxy.xml I am unable to reproduce this on 2.222.1. The password is always stored after form submission. Are you using Groovy init hook scripts, or Configuration-as-Code to define your proxy?
            markewaite Mark Waite added a comment -

            thomaspatzig I am also unable to duplicate the issue on Jenkins 2.222.1. The password is stored when I submit the form without validating the proxy.

            If I validate the proxy with 2.222.1, the validation fails with "ERROR" which can be expanded to show the null pointer exception. After the NPE during validation, the fields are still visible to the user, but there seem to be cases where pressing the Submit button does not write the password or username to the proxy.xml file.

            The bug in 2.222.1 that causes the null pointer exception seems to also cause unexpected interactions between the fields after the null pointer exception. I think that is understandable, since the null pointer exception is unexpected and interrupts the logic before it completes its tasks. I think that PR 4607 is the best solution for this, but that needs your confirmation that it addresses the case you had seen.

            markewaite Mark Waite added a comment - thomaspatzig I am also unable to duplicate the issue on Jenkins 2.222.1. The password is stored when I submit the form without validating the proxy. If I validate the proxy with 2.222.1, the validation fails with " ERROR " which can be expanded to show the null pointer exception. After the NPE during validation, the fields are still visible to the user, but there seem to be cases where pressing the Submit button does not write the password or username to the proxy.xml file. The bug in 2.222.1 that causes the null pointer exception seems to also cause unexpected interactions between the fields after the null pointer exception. I think that is understandable, since the null pointer exception is unexpected and interrupts the logic before it completes its tasks. I think that PR 4607 is the best solution for this, but that needs your confirmation that it addresses the case you had seen.
            thomaspatzig Thomas Patzig added a comment - - edited

            ..have try jenkins.war from PR 4607.... it works...

             

            have also found a mistake on my side....

            I automize the Jenkins installation and bootstrap config to check latest versions... for that I do some http posts like the user would do...

             

            for setup the proxy I have use "post descriptorByName/hudson.ProxyConfiguration/validateProxy" with body form url encoded content and the content "password" instead of "secretPassword"...

            (same on http post pluginManager/proxyConfigure)

             

            I think "password" is no longer supported in that post. Am I right?

             

            ....with fix on my side ("secretPassword" instead of "password") it works fine.

            thomaspatzig Thomas Patzig added a comment - - edited ..have try jenkins.war from PR 4607.... it works...   have also found a mistake on my side.... I automize the Jenkins installation and bootstrap config to check latest versions... for that I do some http posts like the user would do...   for setup the proxy I have use "post descriptorByName/hudson.ProxyConfiguration/validateProxy" with body form url encoded content and the content "password" instead of "secretPassword"... (same on http post pluginManager/proxyConfigure)   I think "password" is no longer supported in that post. Am I right?   ....with fix on my side ("secretPassword" instead of "password") it works fine.
            markewaite Mark Waite added a comment -

            Thanks very much for verifying. That is great news. Yes, as far as I understand it, the field has changed from password to secretPassword in the form. timja can correct me if I've stated that incorrectly.

            The fix will be in the next weekly. Thanks for reporting it and for verifying that the fix works.

            markewaite Mark Waite added a comment - Thanks very much for verifying. That is great news. Yes, as far as I understand it, the field has changed from password to secretPassword in the form. timja can correct me if I've stated that incorrectly. The fix will be in the next weekly. Thanks for reporting it and for verifying that the fix works.
            danielbeck Daniel Beck added a comment -

            Caused by bad automation.

            danielbeck Daniel Beck added a comment - Caused by bad automation.

            People

              Unassigned Unassigned
              thomaspatzig Thomas Patzig
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: