Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-15973

Assets widgets scheduled reports log "insight-widget.error.file.cannotrename" and/or "insight-widget.error.file.cannotdelete"

      Issue Summary

      This bug may manifest in different ways for different environments. However, the common discernible factor are either/both the following errors in the logs: insight-widget.error.file.cannotdelete and/or insight-widget.error.file.cannotrename

      For some instances this bug may manifest in the following warning in the Manage Apps >> Manage Apps section:

      Assets batch process(es) are running. Be aware that upgrading, disabling or uninstalling Assets may cause data inconsistency. Please wait until the process(es) are completed before performing any of these changes to Assets.

      Assets report generation might seem to be stuck. However, in all cases so far the actual reports are generated without any issues.

      Steps to Reproduce

      Cannot reproduce in-house - we tried DC 2 nodes, and 14 reports with a cron every minute.

      Expected Results

      Assets reports will continue to work without recording any errors

      Actual Results

      • Node 1 & Node 2 triggered the generation of the same report/widget at exactly the same time
      • Node 3 triggered it just a second later
      • Because of this as you can see at 09:45:01,909+0100 Node 1 failed
      ./node1-atlassian-jira.log:2025-01-08 09:45:00,316+0100 DefaultDispatcher-worker-8 INFO anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `...
      ./node2-atlassian-jira.log:2025-01-08 09:45:00,316+0100 DefaultDispatcher-worker-2 INFO anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `...
      ./node3-atlassian-jira.log:2025-01-08 09:45:01,904+0100 DefaultDispatcher-worker-7 INFO anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `...
      ./node1-atlassian-jira.log:2025-01-08 09:45:01,909+0100 DefaultDispatcher-worker-8 ERROR anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `... fail
      ./node2-atlassian-jira.log:2025-01-08 09:45:01,911+0100 DefaultDispatcher-worker-2 INFO anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `... took `1594` ms.
      ./node3-atlassian-jira.log:2025-01-08 09:45:02,070+0100 DefaultDispatcher-worker-7 INFO anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `15/REPORT `... took `166` ms. 
      

      The atlassian-jira.log is getting spammed with either or both of the following errors:

      2024-11-11 18:40:00,882+0200 DefaultDispatcher-worker-16 ERROR anonymous     [i.r.j.p.i.widget.repository.WidgetDataRepositoryJiraImpl] An error occurred writing the last data of widget `33` to file `/data/nfs/sharedhome/data/insight/widgets/00/21.json`!
      io.riada.core.service.ServiceException: {insight-widget.error.file.cannotrename}
      	at io.riada.jira.plugins.insight.widget.repository.WidgetDataRepositoryJiraImpl.rename$insight_core_widget(WidgetDataRepositoryJiraImpl.kt:139)
      	at io.riada.jira.plugins.insight.widget.repository.WidgetDataRepositoryJiraImpl.writeLastData(WidgetDataRepositoryJiraImpl.kt:44)
      	at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.put$lambda$0(GenerationDataCapabilityQueueImpl.kt:88)
      	at com.atlassian.jira.util.thread.JiraThreadLocalUtils.lambda$wrap$1(JiraThreadLocalUtils.java:156)
      	at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueRunnerJiraImpl$run$1$future$1.invokeSuspend(GenerationDataCapabilityQueueRunnerJiraImpl.kt:61)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
      	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
      	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
      
      2024-11-12 07:10:00,997+0200 DefaultDispatcher-worker-13 ERROR anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Generating data for widget `33/<REPORT_NAME> `... fail
      io.riada.core.service.ServiceException: {insight-widget.error.file.cannotdelete}
      	at io.riada.jira.plugins.insight.widget.repository.WidgetDataRepositoryJiraImpl.delete$insight_core_widget(WidgetDataRepositoryJiraImpl.kt:118)
      	at io.riada.jira.plugins.insight.widget.repository.WidgetDataRepositoryJiraImpl.writeLastData(WidgetDataRepositoryJiraImpl.kt:42)
      	at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.put$lambda$0(GenerationDataCapabilityQueueImpl.kt:88)
      	at com.atlassian.jira.util.thread.JiraThreadLocalUtils.lambda$wrap$1(JiraThreadLocalUtils.java:156)
      	at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueRunnerJiraImpl$run$1$future$1.invokeSuspend(GenerationDataCapabilityQueueRunnerJiraImpl.kt:61)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
      	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
      	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
      

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

      Versions Tested

      Please confirm all versions that have been tested for this issue, and indicate whether the tested version is affected or not affected, below: 

      Testing Requirements Version Affected Version
      Customers Reported Version 5.12.16, 5.17.3 Yes
      Most Recent Bug-Fix Release    
      Previous Major Release    
      Most Recent LTS    
      Previous Supported LTS    
      Other Versions..    
      (Add rows as needed)    

          Form Name

            [JSDSERVER-15973] Assets widgets scheduled reports log "insight-widget.error.file.cannotrename" and/or "insight-widget.error.file.cannotdelete"

            No work has yet been logged on this issue.

              fd3b5c1acd09 Marc Dacanay
              smitra2@atlassian.com Suddha
              Affected customers:
              1 This affects my team
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: