-
Type:
Bug
-
Resolution: Invalid
-
Priority:
High
-
None
-
Affects Version/s: 10.0.0
-
Component/s: DC Platform Backend
-
None
-
10
-
Severity 2 - Major
Issue Summary
The ScriptRunner’s Fragments Locator feature experienced a significant slowdown from Jira 9 to Jira 10 - registration time has gone from about 2 seconds in Jira 9 to 20+ seconds in Jira 10+.We have recently been looking at ways to improve this. The extra processing time seems related to the plugin API changes in Jira 10, where dom4j was replaced by OsgiPluginXmlDescriptorParser, and every fragment now requires a condition class. As a result, each dynamicModuleDescriptorFactory.loadModules() call is noticeably slower (~1.5 ms per fragment in Jira 9 vs ~21 ms in Jira 10). The additional processing time leads to a poor customer experience, risks HTTP timeouts, and blocks the HTTP thread during registration.
Steps to Reproduce
- Admin enables Fragment Locator via UI toggle
- System discovers all possible fragment locations (typically 500-2000 web sections + 200-500 web panel locations)
- For each location, we:
- Generate XML descriptor string (always including the condition element with class attribute)
- Parse XML using OsgiPluginXmlDescriptorParser.parseChildModulesFromSource() to get Element objects
- Call dynamicModuleDescriptorFactory.loadModules(plugin, element) for each location
- Atlassian’s API handles the module registration internally
Expected Results
Loading large amounts of modules should not cause performance degradation.
Actual Results
Baseline performance on Jira 10 to load 500-2000 web sections + 200-500 web panel locations is 21s
Workaround
Currently there is no known workaround for this behavior. A workaround will be added here when available