Uploaded image for project: 'Jira Cloud'
  1. Jira Cloud
  2. JRACLOUD-66820

Bulk operations (e.g. bulk watching issues) can cause a stack trace with ConcurrentModificationException

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Low
    • Issue - Navigation
    • None

    Description

      Summary

      Some times, performing a bulk operation from the issue navigator, e.g. Bulk Watching Issues, can cause a stack trace.

      Steps to Reproduce

      1. Search for some issues in Issue Navigator
      2. Choose Bulk Operation action
      3. Choose Bulk Watch
      4. Try to complete the wizard

      Expected Results

      Wizard completes successfully

      Actual Results

      The below exception is thrown:

      java.util.ConcurrentModificationException
      at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
      at java.util.ArrayList$Itr.next(ArrayList.java:851)
      at com.atlassian.jira.bc.issue.watcher.DefaultWatcherService.canWatchAll(DefaultWatcherService.java:211)
      at com.atlassian.jira.bulkedit.operation.BulkWatchOperation.canPerform(BulkWatchOperation.java:30)
      at com.atlassian.jira.web.action.issue.bulkedit.BulkChooseOperation.isCanPerform(BulkChooseOperation.java:102)
      at com.atlassian.jira.web.action.issue.bulkedit.BulkChooseOperation.isCanPerform(BulkChooseOperation.java:98)
      ... 2 filtered
      at java.lang.reflect.Method.invoke(Method.java:483)
      at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70)
      at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56)
      at webwork.util.ValueStack.findValue(ValueStack.java:517)
      at webwork.util.SimpleTest.test(SimpleTest.java:408)
      at webwork.util.ValueStack.test(ValueStack.java:157)
      at webwork.view.taglib.IfTag.doStartTag(IfTag.java:40)
      at jsp.secure.views.bulkedit.bulkchooseoperation_jsp._jspx_meth_ww_005fif_005f1(bulkchooseoperation_jsp.java:1308)
      at jsp.secure.views.bulkedit.bulkchooseoperation_jsp._jspx_meth_ww_005fiterator_005f0(bulkchooseoperation_jsp.java:1257)
      at jsp.secure.views.bulkedit.bulkchooseoperation_jsp._jspService(bulkchooseoperation_jsp.java:218)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      ... 22 filtered
      at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
      ... 4 filtered
      at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
      ... 22 filtered
      at com.atlassian.jira.plugins.rest.HOT25715FixServletFilter.doFilter(HOT25715FixServletFilter.java:46)
      ... 26 filtered
      at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76)
      at com.atlassian.jira.security.JiraSecurityFilter$$Lambda$2355/476696057.doFilter(Unknown Source)
      ... 1 filtered
      at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74)
      ... 17 filtered
      at com.atlassian.servicedesk.plugins.cm.internal.auth.filter.LocalServiceDeskUserAuthenticationFilter.doFilter(LocalServiceDeskUserAuthenticationFilter.java:99)
      ... 13 filtered
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:130)
      ... 23 filtered
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at com.atlassian.jira.servlet.WebExceptionCheckingServlet.delegate(WebExceptionCheckingServlet.java:86)
      at com.atlassian.jira.servlet.WebExceptionCheckingServlet.service(WebExceptionCheckingServlet.java:32)
      ... 26 filtered
      at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
      ... 4 filtered
      at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:56)
      ... 13 filtered
      at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
      ... 20 filtered
      at com.atlassian.jira.plugins.rest.HOT25715FixServletFilter.doFilter(HOT25715FixServletFilter.java:46)
      ... 30 filtered
      at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81)
      ... 3 filtered
      at com.atlassian.jira.plugins.hipchat.web.filter.TaskSchedulerFilter.doFilter(TaskSchedulerFilter.java:38)
      ... 14 filtered
      at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76)
      at com.atlassian.jira.security.JiraSecurityFilter$$Lambda$2355/476696057.doFilter(Unknown Source)
      ... 1 filtered
      at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74)
      ... 20 filtered
      at com.atlassian.servicedesk.plugins.cm.internal.auth.filter.LocalServiceDeskUserAuthenticationFilter.doFilter(LocalServiceDeskUserAuthenticationFilter.java:107)
      ... 8 filtered
      at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action.lambda$nextInFilterChain$1(CloudHomepageFilter.java:115)
      at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action$$Lambda$2347/1572948687.execute(Unknown Source)
      at com.atlassian.studio.jira.homepage.CloudHomepageFilter.doFilter(CloudHomepageFilter.java:73)
      at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Provider.doFilter(CloudHomepageFilter.java:134)
      ... 18 filtered
      at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:76)
      ... 3 filtered
      at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:111)
      ... 3 filtered
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:195)
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter$$Lambda$2334/1727172903.call(Unknown Source)
      at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:139)
      at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:92)
      at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:188)
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:144)
      at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:135)
      ... 4 filtered
      at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
      ... 8 filtered
      at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
      ... 4 filtered
      at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
      ... 40 filtered
      at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.lambda$doFilter$1(ZipkinTracingFilter.java:52)
      at com.atlassian.jira.util.zipkin.ZipkinTracingFilter$$Lambda$2232/1110970069.doFilter(Unknown Source)
      at com.github.kristofa.brave.servlet.BraveServletFilter.doFilter(BraveServletFilter.java:59)
      at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.doFilter(ZipkinTracingFilter.java:40)
      ... 21 filtered
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      

      Notes

      This does not occur very frequently and the conditions are unknown.

      Workaround

      Repeat the operation until it works.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: