[Building Sakai] sitestats thread

John Bush john.bush at rsmart.com
Tue Sep 11 14:04:58 PDT 2012


We've been seeing CPU's get pegged, and often when we do a thread dump
we see this stack in sitestats.

I don't know what to make of this, the hsql here is:

select sum(ss.count) " +
					"from SiteActivityImpl as ss " +
					"where ss.eventId in (:eventlist) " +
					"and ss.siteId = :siteid " +
					iDateStr + fDateStr +
					"group by ss.siteId"

It doesn't appear the database is the bottleneck, I'm not sure if this
is some type of hibernate issue, or what.  Has anyone else ever run
into this.  I'm aware of
https://jira.sakaiproject.org/browse/STAT-252, but this seems like
something different.

"TP-Processor17" daemon prio=10 tid=0x00002aaac4834000 nid=0x7da9
runnable [0x0000000054664000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.String.toLowerCase(String.java:2763)
        at java.lang.String.toLowerCase(String.java:2847)
        at org.hibernate.hql.QuerySplitter.concreteQueries(QuerySplitter.java:88)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:68)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
        at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
        at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
        at org.sakaiproject.sitestats.impl.StatsManagerImpl$28.doInHibernate(StatsManagerImpl.java:3573)
        at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
        at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
        at org.sakaiproject.sitestats.impl.StatsManagerImpl.getTotalSiteActivity(StatsManagerImpl.java:3578)
        at org.sakaiproject.sitestats.impl.StatsManagerImpl.getTotalSiteActivity(StatsManagerImpl.java:3531)
        at org.sakaiproject.sitestats.tool.wicket.widget.ActivityWidget$4.getValue(ActivityWidget.java:112)
        at org.sakaiproject.sitestats.tool.wicket.widget.Widget$2.populateItem(Widget.java:144)
        at org.apache.wicket.markup.html.list.Loop.onPopulate(Loop.java:135)
        at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:127)
        at org.apache.wicket.Component.internalBeforeRender(Component.java:1009)
        at org.apache.wicket.Component.beforeRender(Component.java:1041)
        at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1590)
        at org.apache.wicket.Component.onBeforeRender(Component.java:3727)
        at org.apache.wicket.Component.internalBeforeRender(Component.java:1009)
        at org.apache.wicket.Component.beforeRender(Component.java:1041)
        at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1590)
        at org.apache.wicket.Component.onBeforeRender(Component.java:3727)
        at org.sakaiproject.sitestats.tool.wicket.components.AjaxLazyLoadFragment.onBeforeRender(AjaxLazyLoadFragment.java:89)
        at org.apache.wicket.Component.internalBeforeRender(Component.java:1009)
        at org.apache.wicket.Component.beforeRender(Component.java:1041)
        at org.apache.wicket.Component.prepareForRender(Component.java:2167)
        at org.apache.wicket.ajax.AjaxRequestTarget.respondComponent(AjaxRequestTarget.java:762)
        at org.apache.wicket.ajax.AjaxRequestTarget.respondComponents(AjaxRequestTarget.java:662)
        at org.apache.wicket.ajax.AjaxRequestTarget.respond(AjaxRequestTarget.java:577)
        at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104)
        at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1245)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1316)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:532)
        at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
        at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)


-- 
John Bush
602-490-0470


More information about the sakai-dev mailing list