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

Charts are not always drawn on a cluster environment

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: CLOSED
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.5.0
    • Fix Version/s: 2.5.0
    • Component/s: Sitestats
    • Labels:
      None
    • Environment:
      Clustered sakai
    • Previous Issue Keys:
      STAT-30

      Description

      Sometimes a cluster node may fail to draw SiteStats charts.

      In our production environment, Apache+mod_jk is used to load balance with sticky sessions (that is, once a session is established, session is stick with a specific cluster node). Ajax4jsf creates a cookie with a JSESSIONID with the Path: /sakai-sitestats-tool. mod_jk looks at this and dispatch request to a cluster node (that may or not be the correct one (the one sticked with the Sakai JSESSIONID)).

      On a Sakai cluster with two nodes (A and B), when this issue occurs (looks no deterministic) it has the following behavior:

      • User logs in on node A
      • User enters SiteStats on any site
      • All data except for the charts is displayed
      • The following stacktrace is thrown on node B (not A!):

      ERROR: Servlet.service() for servlet Faces Servlet threw exception (2007-08-10 09:06:26,217 TP-Processor5_org.apache.catalina.core.ContainerBase.[Catalina].
      [localhost].[/sakai-sitestats-tool].[Faces Servlet])
      org.ajax4jsf.framework.resource.ResourceNotFoundException: Resource not registered : org.ajax4jsf.framework.resource.UserResource/n/n/-879258763
      at org.ajax4jsf.framework.resource.ResourceBuilderImpl.getResource(ResourceBuilderImpl.java:367)
      at org.ajax4jsf.framework.resource.ResourceBuilderImpl.getResourceForKey(ResourceBuilderImpl.java:322)
      at org.ajax4jsf.framework.resource.InternetResourceService.serviceResource(InternetResourceService.java:152)
      at org.ajax4jsf.framework.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
      at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:261)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
      at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
      at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
      at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
      at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
      at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
      at java.lang.Thread.run(Thread.java:595)

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                nfernandes Nuno Fernandes (Inactive)
                Reporter:
                nfernandes Nuno Fernandes (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Git Source Code