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

Deleting & remaking a tag makes Jenkins stop building the tag forever with GitHub Branch Source

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Labels:
    • Environment:
    • Similar Issues:

      Description

      Issue:
       
      When I click Jenkins reports a tag that exists as "Not Found" and failing the build with this message:
       
      12:52:41 Branch indexing
      19:52:41 [2019-06-24T19:52:41.964Z] Connecting to https://api.github.com using dev-rafabuildadmin/****** (github dev-rafabuildadmin user (required to publish build/deploy status))
      12:52:42 java.io.FileNotFoundException: https://api.github.com/repos/rafastealth/ios-patient-client/git/refs/tags/0.0.4
      12:52:42     at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243)
      12:52:42     at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
      12:52:42     at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)
      12:52:42     at org.kohsuke.github.Requester.parse(Requester.java:625)
      12:52:42     at org.kohsuke.github.Requester.parse(Requester.java:607)
      12:52:42     at org.kohsuke.github.Requester._to(Requester.java:285)
      12:52:42 Caused: org.kohsuke.github.GHFileNotFoundException: {"message":"Not Found","documentation_url":"https://developer.github.com/v3/git/refs/#get-a-reference"}
      12:52:42     at org.kohsuke.github.Requester.handleApiError(Requester.java:699)
      12:52:42     at org.kohsuke.github.Requester._to(Requester.java:306)
      12:52:42     at org.kohsuke.github.Requester.to(Requester.java:247)
      12:52:42     at org.kohsuke.github.GHRepository.getRef(GHRepository.java:891)
      12:52:42     at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:1521)
      12:52:42     at jenkins.scm.api.SCMSource.fetch(SCMSource.java:582)
      12:52:42     at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:98)
      12:52:42     at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
      12:52:42     at hudson.model.ResourceController.execute(ResourceController.java:97)
      12:52:42    at hudson.model.Executor.run(Executor.java:429)
      12:52:42 Finished: FAILURE
       
      See "github_tag.png" for proof the tag does indeed exist. I've tried re-indexing, but the issue never resolves.
       
      Repro Steps:
       

      • Set up tags to build with your repo (see tag_setup.png)
      • Create a tag (say, 0.0.4) in your git repo and push it up to origin. This will cause it to auto build.
      • In git, delete the tag and push that deletion up to Github. 
      • In Jenkins, in the job made by the tag, click "Build Now" - It should fail to find the tag
      • In git, tag a new commit with the same tag name (0.0.4) as above and push it up to Github.
      • In Jenkins, in the job made by the tag, click "Build Now" - Note that Jenkins still can't find the tag even though it exists.
         
         

        Attachments

        1. error_message.png
          error_message.png
          449 kB
        2. github_tag.png
          github_tag.png
          31 kB
        3. plugin_installed.png
          plugin_installed.png
          62 kB
        4. tag_setup.png
          tag_setup.png
          49 kB

          Activity

          Hide
          markewaite Mark Waite added a comment -

          Changed the assigned project from the git plugin to the github branch source plugin since the github branch source plugin is in the stack trace rather than the git plugin. The git plugin does not use the GitHub API's. It uses calls to either command line git or to JGit, without invoking any hosting provider specific APIs.

          You may also want to refer to the comments in JENKINS-55284. They describe why it is considered bad practice in git to create a new tag at a new location which uses the same tag name as an existing tag. Once a tag name has been used and cloned outside the original repository, it is usually best to consider that tag "consumed" and to never create or modify it again.

          Show
          markewaite Mark Waite added a comment - Changed the assigned project from the git plugin to the github branch source plugin since the github branch source plugin is in the stack trace rather than the git plugin. The git plugin does not use the GitHub API's. It uses calls to either command line git or to JGit, without invoking any hosting provider specific APIs. You may also want to refer to the comments in JENKINS-55284 . They describe why it is considered bad practice in git to create a new tag at a new location which uses the same tag name as an existing tag. Once a tag name has been used and cloned outside the original repository, it is usually best to consider that tag "consumed" and to never create or modify it again.
          Show
          bitwiseman Liam Newman added a comment - Ethan Diamond Please take a look at https://github.com/jenkinsci/github-branch-source-plugin/pull/229 . Try this patched hpi to see if fixes you issue: https://repo.jenkins-ci.org/incrementals/org/jenkins-ci/plugins/github-branch-source/2.5.4-rc850.6b329ab1a13f/
          Hide
          ethanjdiamond Ethan Diamond added a comment -

          Thanks for the quick turnaround Liam!

          Unfortunately it doesn't seem to have fixed my problem. I've attached images proving that the plugin was installed correctly and the error message when I try to build. It looks like the API is reporting the tag as "Not Found", which is what it does when you try to hit that API and are unauthenticated. I think the auth might be failing. For example, if you go to: https://api.github.com/repos/rafastealth/ios-patient-client/git/refs/tags/0.0.12 you'll see it's reporting the same not found message and it's because you don't have access.

          Show
          ethanjdiamond Ethan Diamond added a comment - Thanks for the quick turnaround Liam! Unfortunately it doesn't seem to have fixed my problem. I've attached images proving that the plugin was installed correctly and the error message when I try to build. It looks like the API is reporting the tag as "Not Found", which is what it does when you try to hit that API and are unauthenticated. I think the auth might be failing. For example, if you go to:  https://api.github.com/repos/rafastealth/ios-patient-client/git/refs/tags/0.0.12  you'll see it's reporting the same not found message and it's because you don't have access.
          Hide
          ethanjdiamond Ethan Diamond added a comment -

          Bump!

          Show
          ethanjdiamond Ethan Diamond added a comment - Bump!
          Hide
          bitwiseman Liam Newman added a comment -

          Ethan Diamond
          Unfortunately, "Not found" is the result reported by many different conditions, so it is not always clear what is going on.
          Could you try reproducing this on a non-private repo? That would tell us if this is an auth issue.

          Show
          bitwiseman Liam Newman added a comment - Ethan Diamond Unfortunately, "Not found" is the result reported by many different conditions, so it is not always clear what is going on. Could you try reproducing this on a non-private repo? That would tell us if this is an auth issue.

            People

            • Assignee:
              bitwiseman Liam Newman
              Reporter:
              ethanjdiamond Ethan Diamond
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: