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

Performance plugin parses the same file multiple times

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • performance-plugin
    • None

      In some cases, the Performance plugin parses the same CSV files of the same build multiple times, even if has been already parsed. This causes the UI halting and not able to show any data, until all of them get parsed multiple times, which takes extremely long time.

      The way I reproduce it is to run the same build again and again without delay (performance reporting of large csv files, but without testing), like below pipeline snippet:

      //A CSV file named report.csv is firstly created with large dataset

      perfReport report.csv

      When the multiple builds are being run, keep the job's UI page open in one browser.

      After several builds, the job's UI page is halting and there is no performance report showed, unless after an extremely long time.

      From the Jenkins log, I can see the same report gets parsed again and again.

      For example, after building #67, #68 & #69, below is the Jenkins log:

      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/69/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/68/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/68/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/68/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/68/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/69/performance-reports/JMeterCSV/full_report' with filterRegex 'null'.
      Performance: Parsing report file '/local/jenkins/jobs/loadtest/builds/67/performance-reports/JMeterCSV/full_report' with filterRegex 'null'. 

      Two work-arounds:

      1. Make sure the Jenkins job UI page is not opened in any browsers when multiple builds are being run without delay. It seems like the parsing is triggered from UI request, and if the job UI page is opened, and the build only contains one report each, it will request the performance report and trigger Jenkins to parse the logs every time a new build is run.
      2. Restart the Jenkins after multiple builds have been performed, then run only one more new build. After that, the plugin parses all builds which have not been parsed yet only once, but not multiple times.

       

       

            artem_fedorov Artem Fedorov
            goldyliang Goldy Liang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: