Uploaded image for project: 'Infrastructure'
  1. Infrastructure
  2. INFRA-3023

Update center content is not being refreshed

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      The web page at https://updates.jenkins.io/latest/ has not been updated in the last 31 hours. It is missing the most recent release of the tuleap-api-plugin that was made about 23 hours ago. The link https://updates.jenkins.io/latest/tuleap-api.hpi should point to tuleap-api-plugin 2.3.0 but instead points to tuleap-api-plugin 2.2.2.

      The update center job trying to update the page reports a failure when downloading that plugin from artifactory. However, when I download interactively using the same URL, it succeeds.

        Attachments

          Issue Links

            Activity

            Hide
            jglick Jesse Glick added a comment -

            https://hackmd.io/Yg8kpn5HSdyPJI7yVrV_7w

            Might suffice to just exclude the three Tuleap-related plugins from resources/artifact-ignores.properties temporarily. Any admins around to try?

            Show
            jglick Jesse Glick added a comment - https://hackmd.io/Yg8kpn5HSdyPJI7yVrV_7w Might suffice to just exclude the three Tuleap-related plugins from resources/artifact-ignores.properties temporarily. Any admins around to try?
            Hide
            danielbeck Daniel Beck added a comment -

            The error message:

            Caused by: java.io.IOException: Failed to retrieve content of https://repo.jenkins-ci.org/releases/io/jenkins/plugins/tuleap-api/2.3.0/tuleap-api-2.3.0.pom (cached)
            	at io.jenkins.update_center.ArtifactoryRepositoryImpl.getFile(ArtifactoryRepositoryImpl.java:276)
            	at io.jenkins.update_center.ArtifactoryRepositoryImpl.resolve(ArtifactoryRepositoryImpl.java:309)
            

            Notice the little "(cached)" at the end there. We cache 404 responses since we download lots of optional files (like index.jelly from hpi's).
             
            In this case, it happened because the jpi was available 6 minutes before the rest of the files: https://repo.jenkins-ci.org/releases/io/jenkins/plugins/tuleap-api/2.3.0/
             
            The way this simple cache works is that we encode the URL into base64 and if we get a response, store it in a file of that name. In case of error, it's an empty directory of this name. So, to clear all error responses (there's just a few hundred or so) and have the tool re-download them we just need to delete all (empty) directories in the Artifactory cache, something like:

            println "find /mnt/jenkins/agent-workspace/workspace/update_center/caches/artifactory -mindepth 1 -maxdepth 1 -type d -print -delete".execute().text
            

            Builds were initially still failing but I think this is a bug I introduced when I created the fallback mechanism for Jenkins 2.300 and 2.289.2, they were successful 2-3 builds later.
             
            The PRs against the default branch did nothing as we're currently running off https://github.com/jenkins-infra/update-center2/tree/camilla-fallback to handle the 2.300 and 2.289.2 workaround ( https://groups.google.com/g/jenkinsci-dev/c/4sgBC1crUJw ).

            Show
            danielbeck Daniel Beck added a comment - The error message: Caused by: java.io.IOException: Failed to retrieve content of https://repo.jenkins-ci.org/releases/io/jenkins/plugins/tuleap-api/2.3.0/tuleap-api-2.3.0.pom (cached) at io.jenkins.update_center.ArtifactoryRepositoryImpl.getFile(ArtifactoryRepositoryImpl.java:276) at io.jenkins.update_center.ArtifactoryRepositoryImpl.resolve(ArtifactoryRepositoryImpl.java:309) Notice the little "(cached)" at the end there. We cache 404 responses since we download lots of optional files (like index.jelly from hpi's).   In this case, it happened because the jpi was available 6 minutes before the rest of the files:  https://repo.jenkins-ci.org/releases/io/jenkins/plugins/tuleap-api/2.3.0/   The way this simple cache works is that we encode the URL into base64 and if we get a response, store it in a file of that name. In case of error, it's an empty directory of this name. So, to clear all error responses (there's just a few hundred or so) and have the tool re-download them we just need to delete all (empty) directories in the Artifactory cache, something like: println "find /mnt/jenkins/agent-workspace/workspace/update_center/caches/artifactory -mindepth 1 -maxdepth 1 -type d -print -delete".execute().text Builds were initially still failing but I think this is a bug I introduced when I created the fallback mechanism for Jenkins 2.300 and 2.289.2, they were successful 2-3 builds later.   The PRs against the default branch did nothing as we're currently running off https://github.com/jenkins-infra/update-center2/tree/camilla-fallback to handle the 2.300 and 2.289.2 workaround ( https://groups.google.com/g/jenkinsci-dev/c/4sgBC1crUJw ).

              People

              Assignee:
              danielbeck Daniel Beck
              Reporter:
              markewaite Mark Waite
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: