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

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

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

      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
      

        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

          [JENKINS-61693] using git multi branch pipeline through proxy leads to fatal: unable to access

          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.

          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.

          Thomas Patzig added a comment -

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

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

          Thomas Patzig added a comment -

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

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

          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).

          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).

          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.

          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.

          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?

          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?

          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.

          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.

          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.

          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.

          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.

          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.

          Daniel Beck added a comment -

          Caused by bad automation.

          Daniel Beck added a comment - Caused by bad automation.

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

              Created:
              Updated:
              Resolved: