hudson.model.RunMap$ThisIsHowItsLoaded

Jenkins JIRA | Jesse Glick | 2 years ago
  1. 0

    Observed in a customer installation of 1.554.3, including JENKINS-18065 backport, but reproducible in 1.575-SNAPSHOT. I created a freestyle project using https://github.com/jglick/simple-maven-project-with-tests with a shell step {code:none} mvn -Dmaven.test.failure.ignore test {code} reporting {{\*\*/target/surefire-reports/TEST-*.xml}} and then triggering itself (even if unstable). After setting the system quiet period to 0 and kicking off an initial build, I let it run until it had produced 121 builds of various stability, then restarted Jenkins, running a logger of {{hudson.model.Run}} at {{FINER}} and {{hudson.model.RunMap}} at {{FINEST}}. Showing the dashboard ({{/}}) was fine: builds 120 and 121 were loaded since these are shown as the last stable and failed builds; 116-119 were loaded to complete the weather icon. So then I visited the job index page. 90-115 were loaded to show the most recent builds in the {{HistoryWidget}} in the sidebar, which is normal. But then the remaining 1-89 were also loaded: {code:none} hudson.model.RunMap$ThisIsHowItsLoaded at hudson.model.RunMap.retrieve(RunMap.java:221) at hudson.model.RunMap.retrieve(RunMap.java:56) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:688) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:650) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382) at jenkins.model.lazy.LazyBuildMixIn$RunMixIn.getPreviousBuild(LazyBuildMixIn.java:366) at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:198) at hudson.tasks.test.AbstractTestResultAction.getPreviousResult(AbstractTestResultAction.java:187) at hudson.tasks.test.AbstractTestResultAction.buildDataSet(AbstractTestResultAction.java:270) at hudson.tasks.test.AbstractTestResultAction.doGraph(AbstractTestResultAction.java:232) at hudson.tasks.test.TestResultProjectAction.doTrend(TestResultProjectAction.java:97) {code} Indeed {{/test/trend}} shows the status of every build, not limited to the most recent.

    Jenkins JIRA | 2 years ago | Jesse Glick
    hudson.model.RunMap$ThisIsHowItsLoaded
  2. 0

    Observed in a customer installation of 1.554.3, including JENKINS-18065 backport, but reproducible in 1.575-SNAPSHOT. I created a freestyle project using https://github.com/jglick/simple-maven-project-with-tests with a shell step {code:none} mvn -Dmaven.test.failure.ignore test {code} reporting {{\*\*/target/surefire-reports/TEST-*.xml}} and then triggering itself (even if unstable). After setting the system quiet period to 0 and kicking off an initial build, I let it run until it had produced 121 builds of various stability, then restarted Jenkins, running a logger of {{hudson.model.Run}} at {{FINER}} and {{hudson.model.RunMap}} at {{FINEST}}. Showing the dashboard ({{/}}) was fine: builds 120 and 121 were loaded since these are shown as the last stable and failed builds; 116-119 were loaded to complete the weather icon. So then I visited the job index page. 90-115 were loaded to show the most recent builds in the {{HistoryWidget}} in the sidebar, which is normal. But then the remaining 1-89 were also loaded: {code:none} hudson.model.RunMap$ThisIsHowItsLoaded at hudson.model.RunMap.retrieve(RunMap.java:221) at hudson.model.RunMap.retrieve(RunMap.java:56) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:688) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:650) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382) at jenkins.model.lazy.LazyBuildMixIn$RunMixIn.getPreviousBuild(LazyBuildMixIn.java:366) at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:198) at hudson.tasks.test.AbstractTestResultAction.getPreviousResult(AbstractTestResultAction.java:187) at hudson.tasks.test.AbstractTestResultAction.buildDataSet(AbstractTestResultAction.java:270) at hudson.tasks.test.AbstractTestResultAction.doGraph(AbstractTestResultAction.java:232) at hudson.tasks.test.TestResultProjectAction.doTrend(TestResultProjectAction.java:97) {code} Indeed {{/test/trend}} shows the status of every build, not limited to the most recent.

    Jenkins JIRA | 2 years ago | Jesse Glick
    hudson.model.RunMap$ThisIsHowItsLoaded
  3. 0

    Setup is the same as in JENKINS-23945 except use the {{testng}} branch of the sample project, and configure the TestNG plugin's publisher with {{**/target/surefire-reports/testng-results.xml}}. Even with the fix of JENKINS-23945 applied to Jenkins core, after displaying the job index page all builds are loaded: {code:none} ... FINER hudson.model.Run reload lazy-load-perf #71 @... ... FINEST hudson.model.RunMap Loaded lazy-load-perf #71 hudson.model.RunMap$ThisIsHowItsLoaded at hudson.model.RunMap.retrieve(RunMap.java:221) at hudson.model.RunMap.retrieve(RunMap.java:56) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:688) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:650) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382) at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:70) at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:59) at java.util.AbstractMap$2$1.next(AbstractMap.java:385) at hudson.util.RunList.size(RunList.java:108) at hudson.plugins.testng.TestNGProjectAction.newGraphNotNeeded(TestNGProjectAction.java:141) at hudson.plugins.testng.TestNGProjectAction.doGraph(TestNGProjectAction.java:114) at ... {code} The problem is {{TestNGProjectAction.newGraphNotNeeded}} calling {{RunList.size}}, which is deprecated since it forces all builds to be loaded immediately.

    Jenkins JIRA | 2 years ago | Jesse Glick
    hudson.model.RunMap$ThisIsHowItsLoaded
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Setup is the same as in JENKINS-23945 except use the {{testng}} branch of the sample project, and configure the TestNG plugin's publisher with {{**/target/surefire-reports/testng-results.xml}}. Even with the fix of JENKINS-23945 applied to Jenkins core, after displaying the job index page all builds are loaded: {code:none} ... FINER hudson.model.Run reload lazy-load-perf #71 @... ... FINEST hudson.model.RunMap Loaded lazy-load-perf #71 hudson.model.RunMap$ThisIsHowItsLoaded at hudson.model.RunMap.retrieve(RunMap.java:221) at hudson.model.RunMap.retrieve(RunMap.java:56) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:688) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:650) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382) at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:70) at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:59) at java.util.AbstractMap$2$1.next(AbstractMap.java:385) at hudson.util.RunList.size(RunList.java:108) at hudson.plugins.testng.TestNGProjectAction.newGraphNotNeeded(TestNGProjectAction.java:141) at hudson.plugins.testng.TestNGProjectAction.doGraph(TestNGProjectAction.java:114) at ... {code} The problem is {{TestNGProjectAction.newGraphNotNeeded}} calling {{RunList.size}}, which is deprecated since it forces all builds to be loaded immediately.

    Jenkins JIRA | 2 years ago | Jesse Glick
    hudson.model.RunMap$ThisIsHowItsLoaded

    Root Cause Analysis

    1. hudson.model.RunMap$ThisIsHowItsLoaded

      No message provided

      at hudson.model.RunMap.retrieve()
    2. Hudson
      RunMap.retrieve
      1. hudson.model.RunMap.retrieve(RunMap.java:221)
      2. hudson.model.RunMap.retrieve(RunMap.java:56)
      2 frames
    3. jenkins.model.lazy
      LazyBuildMixIn$RunMixIn.getPreviousBuild
      1. jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:688)
      2. jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:650)
      3. jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382)
      4. jenkins.model.lazy.LazyBuildMixIn$RunMixIn.getPreviousBuild(LazyBuildMixIn.java:366)
      4 frames
    4. Hudson
      TestResultProjectAction.doTrend
      1. hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:198)
      2. hudson.tasks.test.AbstractTestResultAction.getPreviousResult(AbstractTestResultAction.java:187)
      3. hudson.tasks.test.AbstractTestResultAction.buildDataSet(AbstractTestResultAction.java:270)
      4. hudson.tasks.test.AbstractTestResultAction.doGraph(AbstractTestResultAction.java:232)
      5. hudson.tasks.test.TestResultProjectAction.doTrend(TestResultProjectAction.java:97)
      5 frames