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

SCM checkout retry count not working

    XMLWordPrintable

Details

    Description

      From time to time I reveive error when getting SCM changes from Git repository and the option "SCM checkout retry count" (I have set it to 3) is not working.

      ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
      hudson.plugins.git.GitException: Command "git fetch -t git@github.com:xxx/xxx +refs/heads/:refs/remotes/origin/" returned status code 128:
      stdout:
      stderr: ssh_exchange_identification: Connection closed by remote host
      fatal: The remote end hung up unexpectedly

      at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:818)
      at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:780)
      at hudson.plugins.git.GitAPI.fetch(GitAPI.java:196)
      at hudson.plugins.git.GitAPI.fetch(GitAPI.java:1026)
      at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:812)
      at hudson.plugins.git.GitSCM.access$100(GitSCM.java:90)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1096)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
      at hudson.FilePath.act(FilePath.java:842)
      at hudson.FilePath.act(FilePath.java:824)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
      at org.jenkinsci.plugins.multiplescms.MultiSCM.checkout(MultiSCM.java:117)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1249)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
      at hudson.model.Run.execute(Run.java:1488)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:236)
      ERROR: Could not fetch from any repository
      FATAL: Could not fetch from any repository
      hudson.plugins.git.GitException: Could not fetch from any repository
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1103)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
      at hudson.FilePath.act(FilePath.java:842)
      at hudson.FilePath.act(FilePath.java:824)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
      at org.jenkinsci.plugins.multiplescms.MultiSCM.checkout(MultiSCM.java:117)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1249)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
      at hudson.model.Run.execute(Run.java:1488)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:236)

      Attachments

        Activity

          Hi all, I'm also facing the same issue. In fact, my issue is exactly the same as this one: JENKINS-39194. In other words, the "SCM checkout retry count" works fine for freestyle jobs, but not for pipeline jobs that use the "Pipeline script from SCM" option. I'm using workflow-cps plugin version 2.74 and Git plugin version 3.12.0.

          According to the linked ticket, the fix should be in for the version I'm using. Perhaps there has been a regression since then? Has anyone managed to implement a workaround to implement retries on pipeline jobs?

          spidru Andrew Spiteri added a comment - Hi all, I'm also facing the same issue. In fact, my issue is exactly the same as this one: JENKINS-39194 . In other words, the "SCM checkout retry count" works fine for freestyle jobs, but not for pipeline jobs that use the "Pipeline script from SCM" option. I'm using workflow-cps plugin version 2.74 and Git plugin version 3.12.0. According to the linked ticket, the fix should be in for the version I'm using. Perhaps there has been a regression since then? Has anyone managed to implement a workaround to implement retries on pipeline jobs?
          stevekipping Steve Kipping added a comment -

          We have intermittent connection issues between our Jenkins instance on one server and our Bitbucket/Git server which is in a different region. We've been unable to rectify this issue, but the retry should work fine as we've tested this with a manual retry script outside of Jenkins. The SCM retry count doesn't work for us, but would be a good containment method if it did.

          • Git plugin 4.6.0
          • Jenkins 2.263.4 running in Docker

           

           

          stevekipping Steve Kipping added a comment - We have intermittent connection issues between our Jenkins instance on one server and our Bitbucket/Git server which is in a different region. We've been unable to rectify this issue, but the retry should work fine as we've tested this with a manual retry script outside of Jenkins. The SCM retry count doesn't work for us, but would be a good containment method if it did. Git plugin 4.6.0 Jenkins 2.263.4 running in Docker    
          znerd Ernst de Haan added a comment - - edited

          Same issue here. Here's my code snippet:

          stage('checkout') {
              steps {
                  retry(env.TRY_COUNT) {
                      timeout(time: 45, unit: 'SECONDS') {
                          checkout scm
                      }
                  }
              }
          }
          

          Environment:

          • Linux
          • Jenkins 2.150.1
          • Pipeline plugin 2.5
          • Pipeline: Declarative plugin 1.3.2
          • git repository
          • Git plugin 3.9.1
          • Git Client plugin 2.7.3
          • Git Pipeline for Blue Ocean plugin 1.5.4

          What happens is:

          • when the checkout scm fails due to a time-out, it just falls through the retry
          • in other words: the retry is not even attempted
          znerd Ernst de Haan added a comment - - edited Same issue here. Here's my code snippet: stage('checkout') { steps { retry(env.TRY_COUNT) { timeout(time: 45, unit: 'SECONDS') { checkout scm } } } } Environment: Linux Jenkins 2.150.1 Pipeline plugin 2.5 Pipeline: Declarative plugin 1.3.2 git repository Git plugin 3.9.1 Git Client plugin 2.7.3 Git Pipeline for Blue Ocean plugin 1.5.4 What happens is: when the checkout scm fails due to a time-out, it just falls through the retry in other words: the retry is not even attempted

          We still run into this issue - we're using git plugin v3.8.0

          e.g. while loading a shared pipeline library on a multibranch-pipeline

          We got error "unable to access [shared pipeline repo git repo url]: The requested URL returned error: 504

          WorkflowScript: Loading libraries failed

           

          No retry is done to load the shared pipeline library, while SCM retry count is set to 5 

          sdecooma Sofie De Cooman added a comment - We still run into this issue - we're using git plugin v3.8.0 e.g. while loading a shared pipeline library on a multibranch-pipeline We got error "unable to access [shared pipeline repo git repo url] : The requested URL returned error: 504 WorkflowScript: Loading libraries failed   No retry is done to load the shared pipeline library, while SCM retry count is set to 5 

          Just to note that it isn't working for me either - using Jenkins 1.558, Git Client Plugin 1.9.1, Git Plugin 2.2.1.

          Sadly, we do get the occasional ssh connect failure, and we can't seem to find a way to fix it by itself, so retrying the checkout is the only way for us to get more reliable builds.

          cg Christian Goetze added a comment - Just to note that it isn't working for me either - using Jenkins 1.558, Git Client Plugin 1.9.1, Git Plugin 2.2.1. Sadly, we do get the occasional ssh connect failure, and we can't seem to find a way to fix it by itself, so retrying the checkout is the only way for us to get more reliable builds.

          People

            Unassigned Unassigned
            lnowak Łukasz Nowak
            Votes:
            11 Vote for this issue
            Watchers:
            21 Start watching this issue

            Dates

              Created:
              Updated: