Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-23380

high CPU caused by loading the Assignment grading page with lots of participant

    XMLWordPrintable

    Details

    • 2.9 Status:
      Resolved

      Description

      We observed high app cpu when instructor tries to load the assignment grading page for a class with 4000+ users.

      There are many stuck thread with the following pattern, within the submission comparator section:

      "ajp-apr-127.0.0.1-8009-exec-6" daemon prio=10 tid=0x00007f91ac017000 nid=0x3a7c runnable [0x00007f91ec4cf000]
      java.lang.Thread.State: RUNNABLE
      at java.text.RBTableBuilder.addExpansion(RBTableBuilder.java:515)
      at java.text.RBTableBuilder.addExpandOrder(RBTableBuilder.java:505)
      at java.text.RBTableBuilder.addComposedChars(RBTableBuilder.java:243)
      at java.text.RBTableBuilder.build(RBTableBuilder.java:158)
      at java.text.RBCollationTables.<init>(RBCollationTables.java:83)
      at java.text.RuleBasedCollator.<init>(RuleBasedCollator.java:300)
      at java.text.RuleBasedCollator.<init>(RuleBasedCollator.java:281)
      at org.sakaiproject.assignment.tool.AssignmentAction$AssignmentComparator.compareString(AssignmentAction.java:10346)
      at org.sakaiproject.assignment.tool.AssignmentAction$AssignmentComparator.compare(AssignmentAction.java:9920)
      at java.util.TimSort.mergeHi(TimSort.java:806)
      at java.util.TimSort.mergeAt(TimSort.java:485)
      at java.util.TimSort.mergeCollapse(TimSort.java:408)
      at java.util.TimSort.sort(TimSort.java:214)
      at java.util.TimSort.sort(TimSort.java:173)
      at java.util.Arrays.sort(Arrays.java:659)
      at java.util.Collections.sort(Collections.java:217)
      at org.sakaiproject.assignment.tool.AssignmentAction.sizeResources(AssignmentAction.java:10704)
      at org.sakaiproject.cheftool.PagedResourceActionII.prepPage(PagedResourceActionII.java:281)
      at org.sakaiproject.assignment.tool.AssignmentAction.build_instructor_grade_assignment_context(AssignmentAction.java:2849)
      at org.sakaiproject.assignment.tool.AssignmentAction.buildMainPanelContext(AssignmentAction.java:940)
      at sun.reflect.GeneratedMethodAccessor2453.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.toolModeDispatch(VelocityPortletPaneledAction.java:429)
      at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1156)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
      at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1482)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:213)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:893)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:197)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
      at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1780)

      • locked <0x0000000615b5e8e0> (a org.apache.tomcat.util.net.SocketWrapper)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  umich-dev UMich Developers
                  Reporter:
                  zqian Zhen Qian
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Git Source Code