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

Updating JIRA-issues deadlock

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core, jira-plugin

      After we updated our Jenkins-Instance from 1.609.3 to 2.46.3 (both LTS) the Post-Build-Action "Update relevant issues" will stall many of our Jenkins-Builds. (100% CPU usage on Jenkins Master, the Builds would run hours and days if I didn't kill the thread manually).

      The Action "Update relevant issues" is enabled in some of our Jobs and the Default Issue Selector is selected.
      All of those Jobs are of the Type "Freestyle Build Job".
      Our Sourcecode-Repository is a Subversion-Repository. Builds are triggered via a svn post commit hook. Our subversion project repositories uses 'svn externals' - there are around ~50 externals (libraries) included in a project-checkout.

      Sometimes one and the same library is checked out multiple times for one build-job, e.g.
      at Path /: svn:externals=/repos/Tools/tags/V0071/ tools
      at Path /build: svn:externals=/repos/Tools/tags/V0071/yagarto/4.90/ yagarto


      The problem does not occour on every build of those jobs - only if "Changes in dependency" are detected the problem occours.

      There is nothing written on the Build-Console after

      [WARNINGS] Parsing warnings in console log with parser GNU C Compiler 4 (gcc)
      [WARNINGS] Computing warning deltas based on reference build #1204
      Archiving artifacts
      Recording fingerprints

      At Jenkins-Logfile nothing abnormal is logged while the Thread is working and working.

      Only at Java-Melody I can see something suspicious:
      The Executor-Thread for this Build consumes loads fo CPU-time and seems to be in some kind of a recursion:

      Executor #0 for HUDSONSL1 : executing {Jobname} #1205
      java.util.StringTokenizer.scanToken(StringTokenizer.java:278)
      java.util.StringTokenizer.nextToken(StringTokenizer.java:351)
      jenkins.model.Jenkins.getItemByFullName(Jenkins.java:2876)
      hudson.model.Fingerprint$BuildPtr.getJob(Fingerprint.java:152)
      hudson.tasks.Fingerprinter$FingerprintAction.getDependencies(Fingerprinter.java:412)
      hudson.model.AbstractBuild.getDependencyChanges(AbstractBuild.java:1271)
      hudson.plugins.jira.RunScmChangeExtractor.getDependencyChanges(RunScmChangeExtractor.java:76)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:132)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesFromDependentBuilds(DefaultIssueSelector.java:135)
      hudson.plugins.jira.selector.DefaultIssueSelector.addIssuesRecursive(DefaultIssueSelector.java:110)
      hudson.plugins.jira.selector.DefaultIssueSelector.findIssueIds(DefaultIssueSelector.java:48)
      hudson.plugins.jira.Updater.perform(Updater.java:85)
      hudson.plugins.jira.JiraIssueUpdater.perform(JiraIssueUpdater.java:64)
      hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
      hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
      hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
      hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
      hudson.model.Build$BuildExecution.post2(Build.java:186)
      hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
      hudson.model.Run.execute(Run.java:1753)
      hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      hudson.model.ResourceController.execute(ResourceController.java:98)
      hudson.model.Executor.run(Executor.java:405

      Another Problem we now have is (don't know if this problems are in connection), that the post build action "Update issues" does comment loads of issues... often also those, which hasn't been mentioned in a commit comment since years.

            Unassigned Unassigned
            coyote_de Dieter G.
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: