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

scm (git) command does not fail correctly when it cannot look up credentials

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Component/s: git-plugin
    • Labels:
    • Environment:
      jenkins 1.609.3
      java8
      credentials-binding 1.23
      credentials 1.5
      git-client 1.19.0
      git 2.4.0
      workflow 1.11-SNAPSHOT (a24f1309) (required for deleteDir)
    • Similar Issues:

      Description

      If you specify an scm to use a specific credential in workflow if that credential can not be found I expect a error saying so - not a generic error from git.

      Steps to reproduce

      1. create a global credential "SSH Username with private key" in Jenkins configured for "Global Access" and provide it an id of "github" (and set up this key on github)
      2. create a workflow with the following syntax

      node() {
              deleteDir() // ensure workspace is fully clean
              checkout([$class: 'GitSCM', userRemoteConfigs: [[credentialsId: 'github', url: 'git@github.com:jenkinsci/jenkins.git']], branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout'], [$class: 'RelativeTargetDirectory', relativeTargetDir: 'jenkins']], submoduleCfg: []])
            echo "hello there"
          }
      }
      

      3. run the workflow and verify it can clone correctly
      4. change the credential from "Global Access" to "System Access"

      expected results

      the workflow should fail saying can not locate credential with id "githib"

      Actual Results

      workflow fails with the following:

      Cloning the remote Git repository
      Cloning repository git@github.com:jenkinsci/jenkins.git
       > git init /home/jenkins/slave/workspace/automated_release/jenkinsci/jenkins # timeout=10
      Fetching upstream changes from git@github.com:jenkinsci/jenkins.git
       > git --version # timeout=10
       > git -c core.askpass=true fetch --tags --progress git@github.com:jenkinsci/jenkins.git +refs/heads/*:refs/remotes/origin/*
      ERROR: Error cloning remote repo 'origin'
      hudson.plugins.git.GitException: Command "git -c core.askpass=true fetch --tags --progress git@github.com:jenkinsci/jenkins.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
      stdout: 
      stderr: Permission denied (publickey).
      fatal: Could not read from remote repository.
      
      Please make sure you have the correct access rights
      and the repository exists.
      
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1640)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1388)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:62)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:313)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:505)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      	at ......remote call to linnux-slave(Native Method)
      	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1413)
      	at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
      	at hudson.remoting.Channel.call(Channel.java:778)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:145)
      	at sun.reflect.GeneratedMethodAccessor376.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:131)
      	at com.sun.proxy.$Proxy70.execute(Unknown Source)
      	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1003)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1043)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:49)
      	at hudson.security.ACL.impersonate(ACL.java:213)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:47)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      This error message does not actually tell you what is wrong.

        Attachments

          Activity

          teilo James Nord created issue -
          teilo James Nord made changes -
          Field Original Value New Value
          Environment jenkins 1.609.3
          java8
          credentials-binding 1.23
          credentials 1.5
          git-client 1.19.0
          git 2.4.0
          jenkins 1.609.3
          java8
          credentials-binding 1.23
          credentials 1.5
          git-client 1.19.0
          git 2.4.0
          workflow 1.11-SNAPSHOT (a24f1309) (required for deleteDir)
          markewaite Mark Waite made changes -
          Assignee Mark Waite [ markewaite ]
          jglick Jesse Glick made changes -
          Component/s workflow-plugin [ 18820 ]
          Assignee Mark Waite [ markewaite ]
          Labels diagnostics ux diagnostics ux workflow
          markewaite Mark Waite made changes -
          Assignee Mark Waite [ markewaite ]
          markewaite Mark Waite made changes -
          Labels diagnostics ux workflow diagnostics ux
          rtyler R. Tyler Croy made changes -
          Workflow JNJira [ 165626 ] JNJira + In-Review [ 182060 ]
          cloudbees CloudBees Inc. made changes -
          Remote Link This issue links to "CloudBees Internal OSS-317 (Web Link)" [ 18915 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Assignee Jose Blas Camacho Taboada [ jtaboada ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Remote Link This issue links to "Github PR 653 (Web Link)" [ 22159 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Status In Progress [ 3 ] In Review [ 10005 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Remote Link This issue links to "Github PR to stable-3.0 (Web Link)" [ 22182 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Remote Link This issue links to "Github PR to stable-3.9 (Web Link)" [ 22183 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Remote Link This issue links to "Github PR to stable-3.0 (Web Link)" [ 22182 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Resolution Fixed [ 1 ]
          Status In Review [ 10005 ] Resolved [ 5 ]
          jtaboada Jose Blas Camacho Taboada made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            Assignee:
            jtaboada Jose Blas Camacho Taboada
            Reporter:
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: