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

Performance of Blame SVN plugin is very poor

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • blamesubversion-plugin
    • None
    • Jenkins LTS 1.554.2. Latest version of email ext, latest version of blamesvn plugin

      See JENKINS-20078 issue for details.

      Blame svn plugin calls hudson.model.User.getProjects(User.java:479) for all User projects but should call only for upstream projects of a given job. This cause serious performance issue

      at java.lang.Character.toUpperCase(Unknown Source)
               at java.lang.Character.toUpperCase(Unknown Source)
               at java.lang.String$CaseInsensitiveComparator.compare(Unknown Source)
               at java.lang.String$CaseInsensitiveComparator.compare(Unknown Source)
               at java.lang.String.compareToIgnoreCase(Unknown Source)
               at hudson.model.User$1.compare(User.java:415)
               at hudson.model.User$1.compare(User.java:413)
               at java.util.TimSort.mergeHi(Unknown Source)
               at java.util.TimSort.mergeAt(Unknown Source)
               at java.util.TimSort.mergeForceCollapse(Unknown Source)
               at java.util.TimSort.sort(Unknown Source)
               at java.util.TimSort.sort(Unknown Source)
               at java.util.Arrays.sort(Unknown Source)
               at java.util.Collections.sort(Unknown Source)
               at hudson.model.User.getAll(User.java:413)
               at hudson.model.User$FullNameIdResolver.resolveCanonicalId(User.java:768)
               at hudson.model.User.get(User.java:327)
               at hudson.model.User.get(User.java:300)
               at hudson.model.User.get(User.java:369)
               at hudson.scm.SubversionChangeLogSet$LogEntry.setUser(SubversionChangeLogSet.java:267)
               at sun.reflect.GeneratedMethodAccessor56595.invoke(Unknown Source)
               at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
               at java.lang.reflect.Method.invoke(Unknown Source)
               at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2170)
               at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2151)
               at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1957)
               at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:2064)
               at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1017)
               at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:456)
               at org.apache.commons.digester.BeanPropertySetterRule.end(BeanPropertySetterRule.java:202)
               at org.apache.commons.digester.Digester.endElement(Digester.java:1345)
               at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
               at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
               at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
               at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
               at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
               at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
               at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
               at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
               at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
               at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
               at org.apache.commons.digester.Digester.parse(Digester.java:1871)
               at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:76)
               at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:43)
               at hudson.model.AbstractBuild.calcChangeSet(AbstractBuild.java:922)
               at hudson.model.AbstractBuild.getChangeSet(AbstractBuild.java:896)
               at hudson.model.AbstractBuild.hasParticipant(AbstractBuild.java:454)
               at hudson.model.AbstractProject.hasParticipant(AbstractProject.java:1644)
               at hudson.model.User.getProjects(User.java:479)
               at hudson.scm.BlameSubversionMailAddressResolverImpl.findMailAddressFor(BlameSubversionMailAddressResolverImpl.java:23)
               at hudson.tasks.MailAddressResolver.resolve(MailAddressResolver.java:112)
               at hudson.tasks.Mailer$UserProperty.getAddress(Mailer.java:547)
               at hudson.plugins.emailext.EmailRecipientUtils.getUserConfiguredEmail(EmailRecipientUtils.java:110)
               at hudson.plugins.emailext.plugins.recipients.CulpritsRecipientProvider.addRecipients(CulpritsRecipientProvider.java:41)
               at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:516)
               at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:290)
               at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:281)
               at hudson.plugins.emailext.ExtendedEmailPublisher.access$100(ExtendedEmailPublisher.java:79)
               at hudson.plugins.emailext.ExtendedEmailPublisher$1.endBuild(ExtendedEmailPublisher.java:689)
               at hudson.matrix.MatrixBuild$MatrixBuildExecution.post2(MatrixBuild.java:403)
               at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725)
               at hudson.model.Run.execute(Run.java:1709)
               at hudson.matrix.MatrixBuild.run(MatrixBuild.java:304)
               at hudson.model.ResourceController.execute(ResourceController.java:88)
               at hudson.model.Executor.run(Executor.java:231)
               at hudson.model.OneOffExecutor.run(OneOffExecutor.java:43)
      

            Unassigned Unassigned
            imakowski Ireneusz Makowski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: