-
Suggestion
-
Resolution: Fixed
NOTE: This suggestion is for JIRA Cloud. Using JIRA Server? 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
- is related to
-
JRACLOUD-28012 Please update Flowdock plugin to 1.50.5 on JOD
- Closed
-
JRASERVER-27972 Flowdock plugin is causing performance issues for OnDemand instances
- Closed