Details
-
Bug
-
Resolution: Fixed
-
Low
-
4.22.6, 5.4.8
-
None
-
2
-
Severity 3 - Minor
-
Description
Issue Summary
Disabling Insight disables many other plugins and triggers internal cache flushes.
This results in temporary loss of functionalities (e.g. Jira Software, Jira Service Desk plugins, dashboards errors, etc.)
Steps to Reproduce
- Disable Insight using REST interface (for example, as a workaround attempt for bug JSDSERVER-12048)
PUT /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key Header: Content-Type: application/vnd.atl.plugins.plugin+json body: { "enabled": false }
- Observe related functionalities in Jira Software (e.g. visit dashboards), Service Desk
Expected Results
Only Insight plugin is disabled.
Actual Results
Insight plugins and other other plugins are disabled + cache flush events are triggered.
The following is visible from atlassian-jira.log:
2022-10-24 12:47:11,308+0000 http-nio-8080-exec-104 INFO admin 767x1071x1 1ckwq0z 172.xxx.xxx.xxx, 172.xxx.xxx.xxx /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key [c.a.plugin.manager.DefaultPluginManager] To disable plugins '[com.riadalabs.jira.plugins.insight]', we need to first disable all dependent enabled plugins: [com.atlassian.pats.pats-plugin(OPTIONAL), com.atlassian.jira.gadgets(OPTIONAL), com.atlassian.jira.jira-software-application(OPTIONAL), com.atlassian.jira.migration.jira-migration-plugin(OPTIONAL), com.atlassian.jira.plugins.inform.batchers(OPTIONAL), com.atlassian.mywork.mywork-jira-provider-plugin(OPTIONAL), com.atlassian.plugins.helptips.jira-help-tips(OPTIONAL), com.atlassian.jira.mobile(OPTIONAL), com.atlassian.jira.plugins.jira-admin-helper-plugin(OPTIONAL), com.atlassian.servicedesk.application(OPTIONAL), com.atlassian.jira.plugins.jira-dnd-attachment-plugin(OPTIONAL), com.atlassian.jira.jira-quick-edit-plugin(OPTIONAL), com.atlassian.jira.jira-core-reports-plugin(OPTIONAL), com.atlassian.jira.collector.plugin.jira-issue-collector-plugin(OPTIONAL), com.atlassian.jira.plugins.webhooks.jira-webhooks-plugin(OPTIONAL), com.atlassian.jira.jira-projects-issue-navigator(OPTIONAL), com.atlassian.jira.jira-issue-link-remote-jira-plugin(OPTIONAL), com.atlassian.jira.mobile.jira-mobile-rest(OPTIONAL), com.atlassian.servicedesk.servicedesk-canned-responses-plugin(OPTIONAL), com.atlassian.jirafisheyeplugin(OPTIONAL), com.atlassian.servicedesk.servicedesk-notifications-plugin(OPTIONAL), com.atlassian.jira.jira-issue-nav-plugin(OPTIONAL), com.atlassian.servicedesk.servicedesk-lingo-integration-plugin(OPTIONAL), com.atlassian.servicedesk.servicedesk-reports-plugin(OPTIONAL), com.atlassian.servicedesk.frontend-webpack-plugin(OPTIONAL), com.atlassian.jira.jira-share-plugin(OPTIONAL), com.atlassian.servicedesk.plugins.servicedesk-search-plugin(OPTIONAL), com.atlassian.servicedesk.servicedesk-knowledge-base-plugin(OPTIONAL), com.atlassian.jira.plugin.ext.bamboo(OPTIONAL), com.atlassian.jira.plugins.jira-development-integration-plugin(OPTIONAL), com.atlassian.jira.plugins.jira-transition-triggers-plugin(OPTIONAL), com.atlassian.jira.plugins.jira-bitbucket-connector-plugin(OPTIONAL), com.atlassian.jira.plugins.jira-software-plugin(OPTIONAL), com.atlassian.servicedesk.plugins.automation.servicedesk-automation-then-webhook-plugin(OPTIONAL), com.atlassian.servicedesk.servicedesk-variable-substitution-plugin(OPTIONAL), com.atlassian.servicedesk.plugins.automation.servicedesk-automation-modules-plugin(OPTIONAL), com.atlassian.servicedesk.public-rest-api(OPTIONAL), com.atlassian.servicedesk.approvals-plugin(OPTIONAL), com.atlassian.servicedesk.plugins.automation.servicedesk-automation-plugin(OPTIONAL), com.atlassian.jpo(OPTIONAL), com.atlassian.jira.plugins.inline-create.jira-inline-issue-create-plugin(OPTIONAL), com.atlassian.teams(OPTIONAL), com.radiantminds.roadmaps-jira(OPTIONAL), com.pyxis.greenhopper.jira(OPTIONAL), com.atlassian.jira.jira-issue-link-confluence-plugin(OPTIONAL), com.atlassian.jira.jira-view-issue-plugin(OPTIONAL), com.atlassian.jira.jira-issue-link-applinks-common-plugin(OPTIONAL), com.atlassian.jira.rest(OPTIONAL), com.atlassian.jira-core-project-templates(OPTIONAL), com.atlassian.jira.project-templates-plugin(OPTIONAL), com.atlassian.jira.plugins.jira-importers-plugin(OPTIONAL), com.atlassian.servicedesk.incident-management-plugin(OPTIONAL), com.atlassian.jira.plugins.workinghours(OPTIONAL), com.atlassian.servicedesk.servicedesk-lingo-plugin(OPTIONAL), com.atlassian.servicedesk(OPTIONAL), com.atlassian.servicedesk.project-ui(OPTIONAL), com.atlassian.jira.jira-issue-nav-components(OPTIONAL), com.atlassian.jira.plugins.workflow.sharing.jira-workflow-sharing-plugin(OPTIONAL), com.atlassian.jira.jira-projects-plugin(OPTIONAL), com.atlassian.jira.plugins.jira-workflow-designer(OPTIONAL), com.atlassian.jira.jira-project-config-plugin(OPTIONAL)]
Many internal, non-Insight caches are being flushed:
... figSchemePersister.fieldConfigSchemesById] Cache com.atlassian.jira.issue.fields.config.persistence.CachedFieldConfigSchemePersister.fieldConfigSchemesById was flushed 2022-10-24 12:49:13,449+0000 http-nio-8080-exec-104 INFO admin 767x1071x1 1ckwq0z 172.xxx.xxx.xxx,172.xxx.xxx.xx /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key [c.a.c.e.c.a.j.i.f.c.persistence.CachedFieldConfigSchemePersister.fieldConfigSchemeIssueTypesBySchemeId] Cache com.atlassian.jira.issue.fields.config.persistence.CachedFieldConfigSchemePersister.fieldConfigSchemeIssueTypesBySchemeId was flushed 2022-10-24 12:49:13,449+0000 http-nio-8080-exec-104 INFO admin 767x1071x1 1ckwq0z 172.xxx.xxx.xxx,172.xxx.xxx.xx /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key [c.a.c.e.c.a.j.i.f.c.persistence.CachedFieldConfigSchemePersister.cacheById] Cache com.atlassian.jira.issue.fields.config.persistence.CachedFieldConfigSchemePersister.cacheById was flushed 2022-10-24 12:49:13,449+0000 http-nio-8080-exec-104 INFO admin 767x1071x1 1ckwq0z 172.xxx.xxx.xxx,172.xxx.xxx.xx /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key [c.a.c.e.c.a.j.i.f.c.persistence.CachedFieldConfigSchemePersister.cacheByCustomField] Cache com.atlassian.jira.issue.fields.config.persistence.CachedFieldConfigSchemePersister.cacheByCustomField was flushed 2022-10-24 12:49:13,449+0000 http-nio-8080-exec-104 INFO admin 767x1071x1 1ckwq0z 172.xxx.xxx.xxx,172.xxx.xxx.xx /rest/plugins/1.0/com.riadalabs.jira.plugins.insight-key [c.a.c.e.c.a.j.i.f.c.persistence.CachedFieldConfigSchemePersister.cacheByFieldConfig] Cache com.atlassian.jira.issue.fields.config.persistence.CachedFieldConfigSchemePersister.cacheByFieldConfig was flushed ...
One potential result is visiting dashboard page returns error 500, throwing this error in the logs:
2022-10-21 11:19:12,275+0100 http-nio-8080-exec-20 ERROR [o.a.c.c.C.[.[localhost].[/].[action]] Servlet.service() for servlet [action] in context with path [] threw exception [java.lang.IllegalArgumentException: Root page 'com.atlassian.jira.gadgets:dashboard-page' does not exist!] with root cause java.lang.IllegalArgumentException: Root page 'com.atlassian.jira.gadgets:dashboard-page' does not exist! at com.atlassian.plugin.webresource.assembler.DefaultWebResourceAssembler$2.requirePage(DefaultWebResourceAssembler.java:211) at com.atlassian.jira.web.action.Dashboard.doExecute(Dashboard.java:187) at webwork.action.ActionSupport.execute(ActionSupport.java:165) at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63) at webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:39) ... 6 filtered at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ... 52 filtered at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 48 filtered at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46) ... 17 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64) ... 39 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 5 filtered at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37) ... 8 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 4 filtered at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46) ... 3 filtered at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36) ... 29 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 25 filtered at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
Workaround
To avoid any downtime, make sure to disable / enable Insight outside of working hours.