Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-27972

Flowdock plugin is causing performance issues for OnDemand instances

    XMLWordPrintable

Details

    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      NOTE: This suggestion is for JIRA Server. Using JIRA Cloud? See the corresponding suggestion.

      When debugging a suspected GreenHopper performance issue in OnDemand, I did some profiling on an instance to get to the root of the problem. It looks as though the Flowdock for JIRA plugin is doing some very expensive PropertySet creation in an IssueEventListener. This might not have been picked up on in regular JIRA usage, as most of the time IssueEvents are fired for only a single issue (create, update, etc). However GreenHopper updates multiple issues at a single time in a loop, and the slowdown caused by this extra code is very noticeable.

      OnDemand instances bundle the Flowdock for JIRA plugin by default. Thus this could be a big problem for a lot of customers. Note that I tried to disable the plugin to see if the problem went away, but it still persisted.

      Here is the thread profile from New Relic:

          100.0%  - java.lang.Thread.run
              152 Collapsed methods (show)
                  97.0%  - com.atlassian.greenhopper.service.sprint.SprintIssueServiceImpl.addIssuesToSprint
                      95.0%  - com.atlassian.greenhopper.service.issue.IssueUpdateServiceImpl.update
                          18 Collapsed methods (show)
                              95.0%  - com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue
                                  87.0%  - com.atlassian.jira.issue.managers.DefaultIssueManager.doUpdate
                                      87.0%  - com.atlassian.jira.issue.util.DefaultIssueUpdater.doUpdate
                                          83.0%  - com.atlassian.jira.event.issue.DefaultIssueEventManager.dispatchEvent
                                              2 Collapsed methods (hide)
                                              83.0%  - com.atlassian.jira.event.issue.DefaultIssueEventManager.publishEvent
                                              83.0%  - com.atlassian.multitenant.event.PeeringEventPublisher.publish
                                                  83.0%  - com.atlassian.multitenant.event.DefaultPeeringEventPublisherManager.publish
                                                      64.0%  - com.atlassian.event.internal.EventPublisherImpl.publish
                                                          24 Collapsed methods (hide)
                                                          64.0%  - com.atlassian.event.internal.EventPublisherImpl.invokeListeners
                                                          64.0%  - com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch
                                                          64.0%  - com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute
                                                          64.0%  - com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run
                                                          63.0%  - com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke
                                                          63.0%  - java.lang.reflect.Method.invoke
                                                          63.0%  - sun.reflect.DelegatingMethodAccessorImpl.invoke
                                                          62.0%  - sun.reflect.GeneratedMethodAccessor423.invoke
                                                          62.0%  - com.flowdock.plugins.jira.IssueChangeListener.onIssueEvent
                                                          62.0%  - com.flowdock.plugins.jira.config.FlowdockConfigurationManager.getApiKeyForProject
                                                          62.0%  - com.flowdock.plugins.jira.config.FlowdockConfigurationManager.getPropertySet
                                                          62.0%  - com.atlassian.jira.config.properties.PropertiesManager.getPropertySet
                                                          62.0%  - com.atlassian.util.concurrent.ResettableLazyReference.get
                                                          62.0%  - com.atlassian.util.concurrent.LazyReference.get
                                                          62.0%  - com.atlassian.util.concurrent.LazyReference.getInterruptibly
                                                          62.0%  - com.atlassian.util.concurrent.LazyReference$Sync.run
                                                          62.0%  - com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create
                                                          62.0%  - com.atlassian.jira.config.properties.DbBackedPropertiesManager$1.create
                                                          62.0%  - com.atlassian.jira.config.properties.DbBackedPropertiesManager$1.create
                                                          62.0%  - com.atlassian.jira.config.properties.PropertySetUtils.createDatabaseBackedPropertySet
                                                          62.0%  - com.opensymphony.module.propertyset.PropertySetManager.getInstance
                                                          62.0%  - com.opensymphony.module.propertyset.PropertySetManager.getInstance
                                                          62.0%  - com.atlassian.jira.propertyset.JiraCachingPropertySet.init
                                                          62.0%  - com.atlassian.jira.propertyset.PropertySetCache.bulkLoad
                                                              62.0%  - com.atlassian.jira.propertyset.PropertySetCache.cloneProperty
                                                                  35.0%  - com.opensymphony.module.propertyset.AbstractPropertySet.getString
                                                                      35.0%  - com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.get
                                                                          18.0%  - com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.findPropertyEntry
                                                                              5 Collapsed methods (show)
                                                                                  16.0%  - org.ofbiz.core.entity.GenericDAO.selectListIteratorByCondition
                                                                                      8.7%  - org.ofbiz.core.entity.jdbc.SQLProcessor.executeQuery
                                                                                      4.0%  - org.ofbiz.core.entity.jdbc.SQLProcessor.prepareStatement
                                                                                      2.7%  - org.ofbiz.core.entity.jdbc.ReadOnlySQLProcessor.<init>
                                                                          17.0%  - org.ofbiz.core.entity.GenericDelegator.findByPrimaryKey
                                                                              2 Collapsed methods (show)
                                                                                  17.0%  - org.ofbiz.core.entity.GenericDAO.select
                                                                                      11.0%  - org.ofbiz.core.entity.GenericDAO.select
                                                                                      4.0%  - org.ofbiz.core.entity.jdbc.SQLProcessor.getConnection
                                                                                      2.0%  - org.ofbiz.core.entity.jdbc.SQLProcessor.close
                                                                  20.0%  - com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.getType
                                                                      6 Collapsed methods (show)
                                                                          19.0%  - org.ofbiz.core.entity.GenericDAO.selectListIteratorByCondition
                                                                              14.0%  - org.ofbiz.core.entity.jdbc.SQLProcessor.executeQuery
                                                                                  11.0%  - org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery
                                                                                      5 Collapsed methods (show)
                                                                                          11.0%  - org.postgresql.core.v3.QueryExecutorImpl.execute
                                                                                              6.7%  - org.postgresql.core.v3.QueryExecutorImpl.sendSync
                                                                                              3.4%  - org.postgresql.core.v3.QueryExecutorImpl.processResults
                                                                                  2.7%  - org.ofbiz.core.entity.jdbc.SQLProcessor.afterExecution
                                                                              4.7%  - org.ofbiz.core.entity.jdbc.SQLProcessor.prepareStatement
                                                                  6.0%  - com.opensymphony.module.propertyset.AbstractPropertySet.getBoolean
                                                      19.0%  - .$Proxy11.publish
                                                          34 Collapsed methods (show)
                                                              19.0%  - sun.misc.Unsafe.park
                                          2.0%  - com.atlassian.jira.transaction.TransactionSupportImpl$TransactionImpl.commit
                                  8.1%  - com.atlassian.jira.issue.managers.DefaultIssueManager.updateFieldValues
                      2.7%  - com.atlassian.greenhopper.service.issue.IssueUpdateServiceImpl.validateUpdate
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mtokar Michael Tokar
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: