[Building Sakai] A wicket state of affairs

Steve Swinsburg steve.swinsburg at gmail.com
Mon Dec 13 17:49:10 PST 2010


This pagemap locking issue happens when a request takes longer than a minute (default timeout) to execute. You can sometimes see this when an AJAX request is fired, it takes a while to run, then the user goes and does something else, so that request is still trying to complete in the background but times out.

Would need a thread dump to see whats happening with Thread[TP-Processor29,5,main]

Heres a post about it:
http://apache-wicket.1842946.n4.nabble.com/After-1-minute-the-Pagemap-null-is-still-locked-td1890832.html

And one with a few solutions:
http://apache-wicket.1842946.n4.nabble.com/After-1-minute-the-Pagemap-null-is-still-locked-by-Thread-ACTIVE-td3047890.html

cheers,
Steve



On 14/12/2010, at 4:55 AM, Stephen Marquard wrote:

> Hi all,
> 
> SiteStats (the version in 2.7) is prone to throwing errors like this,
> particularly on larger sites.
> 
> Could anyone familiar with the internals of Wicket explain what this
> means? Is there some sort of internal Wicket tool state? I thought tool
> state was no longer cool?
> 
> Cheers
> Stephen
> 
> stack trace:
> 
> org.sakaiproject.portal.api.PortalHandlerException:
> org.apache.wicket.WicketRuntimeException: After 1 minute the Pagemap
> null is still locked by: Thread[TP-Processor29,5,main], giving up trying
> to get the page for path:
> 2:activityWidget:widget:middle:widgetTabs:tabs:0:link
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:835)
> caused by: org.apache.wicket.WicketRuntimeException: After 1 minute the
> Pagemap null is still locked by: Thread[TP-Processor29,5,main], giving
> up trying to get the page for path:
> 2:activityWidget:widget:middle:widgetTabs:tabs:0:link
>    at org.apache.wicket.Session.getPage(Session.java:739)
>    at
> org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:448)
>    at
> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139)
>    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1297)
>    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)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>    at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>    at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
>    at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
>    at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
>    at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
>    at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:512)
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1299)
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
>    at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
>    at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:835)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>    at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>    at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:646)
>    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:213)
>    at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>    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:174)
>    at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>    at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
>    at
> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
>    at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
>    at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
>    at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>    at java.lang.Thread.run(Thread.java:662)
> 
> 
> Tool Placement:
> No Placement
> 
> 
> Request:
> :    AuthType:null
> :    CharEncoding:UTF-8
> :    ContentLength:0
> :    ContentType:null
> :    ContextPath:/portal
> :    LocalAddress:null
> :    LocalName:vula.uct.ac.za
> :    LocalPort:443
> :    Method:GET
> :    PathInfo:/tool/1c55e791-22b6-47ec-a958-36bfa07d9540/
> :    Protocol:HTTP/1.1
> :   
> QueryString:wicket:interface=:2:activityWidget:widget:middle:widgetTabs:tabs:0:link::IBehaviorListener:0:3&random=0.015436431160196662
> :    RemoteAddress:41.185.111.55
> :    RemoteHost:41.185.111.55
> :    RemotePort:-1
> :    Requested
> URL:https://vula.uct.ac.za/portal/tool/1c55e791-22b6-47ec-a958-36bfa07d9540/
> :    Scheme:https
> :    ServerName:vula.uct.ac.za
> :    Headers:
> :        Header:host:vula.uct.ac.za
> :        Header:connection:keep-alive
> :       
> Header:referer:https://vula.uct.ac.za/portal/tool/1c55e791-22b6-47ec-a958-36bfa07d9540/home/panel/Main/
> :        Header:Wicket-Ajax:true
> :        Header:accept:text/xml
> :        Header:user-agent:Mozilla/5.0 (Windows; U; Windows NT 6.1;
> en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.215
> Safari/534.10
> :        Header:Accept-Encoding:gzip,deflate,sdch
> :        Header:Accept-Language:en-US,en;q=0.8
> :        Header:Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
> :        Header:cookie:---censored---
> :        Header:content-length:0
> :    Parameters:
> :       
> Parameter:wicket:interface:0::2:activityWidget:widget:middle:widgetTabs:tabs:0:link::IBehaviorListener:0:3
> :        Parameter:random:0:0.015436431160196662
> :    Attributes:
> :        Attribute:sakai.html.head.css.skin:<link
> href="/library/skin/default/tool.css" type="text/css" rel="stylesheet"
> media="all" />
> 
> :        Attribute:sakai.html.head.js:<script type="text/javascript"
> language="JavaScript" src="/library/js/headscripts.js"></script>
> 
> :       
> Attribute:sakai.character.encoding.done:sakai.character.encoding.done
> :       
> Attribute:tool.url.manager:org.sakaiproject.portal.util.ToolURLManagerImpl at 2ccf5a93
> :       
> Attribute:sakai.html.body.onload:setMainFrameHeight('Main1c55e791x22b6x47ecxa958x36bfa07d9540');setFocus(focus_path);
> :        Attribute:sakai.html.head:<link
> href="/library/skin/tool_base.css" type="text/css" rel="stylesheet"
> media="all" />
> <link href="/library/skin/default/tool.css" type="text/css"
> rel="stylesheet" media="all" />
> <script type="text/javascript" language="JavaScript"
> src="/library/js/headscripts.js"></script>
> 
> :        Attribute:sakai.filtered:sakai.filtered
> :        Attribute:sakai.html.head.css.base:<link
> href="/library/skin/tool_base.css" type="text/css" rel="stylesheet"
> media="all" />
> 
> :        Attribute:sakai.html.head.css:<link
> href="/library/skin/tool_base.css" type="text/css" rel="stylesheet"
> media="all" />
> <link href="/library/skin/default/tool.css" type="text/css"
> rel="stylesheet" media="all" />
> 
> :       
> Attribute:sakai.session:org.sakaiproject.tool.impl.MySession at ca8b09e3
> Session:
> :    Created:1292248050843
> :    LastAccess:1292248462468
> :    MaxInactive:3600
> :    Attributes:
> :        Attribute:portalskin:defaultskin
> 
> 
> 
> 
> 
> -- 
> Stephen Marquard, Learning Technologies Co-ordinator
> Centre for Educational Technology, University of Cape Town
> http://www.cet.uct.ac.za
> Email / IM (Jabber/XMPP): stephen.marquard at uct.ac.za
> Phone: +27-21-650-5037 Cell: +27-83-500-5290 
> 
> 
> 
> 
> 
> ###
> UNIVERSITY OF CAPE TOWN 
> 
> This e-mail is subject to the UCT ICT policies and e-mail disclaimer
> published on our website at
> http://www.uct.ac.za/about/policies/emaildisclaimer/ or obtainable from
> +27 21 650 9111. This e-mail is intended only for the person(s) to whom
> it is addressed. If the e-mail has reached you in error, please notify
> the author. If you are not the intended recipient of the e-mail you may
> not use, disclose, copy, redirect or print the content. If this e-mail
> is not related to the business of UCT it is sent by the sender in the
> sender's individual capacity.
> 
> ###
> 
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
> 
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"



More information about the sakai-dev mailing list