How do I properly detach pages from request threads? What could have caused them not to be properly detached?
I saw this error only once in months, so I don't even know how to reproduce it. However, even though it is rare this problem is critical because it made the web site unresponsive. I added an AjaxSelfUpdatingTimerBehavior to one of the pages a while ago to make sure that guest sessions do not expire. Could this cause the problem? this.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(refreshSeconds))); Thanks, Alec On Tue, Oct 26, 2010 at 3:38 AM, Martijn Dashorst <[email protected]> wrote: > It appears that your pages have not been properly detached from their > request threads. Wicket still thinks that TP-Processor1 has the > pagemap locked, whereas that thread is waiting for mod_jk to deliver a > new request. > > I'd look back in the history of what TP-Processor1 has done to get in > that state. > > Martijn > > On Tue, Oct 26, 2010 at 2:52 AM, Alec Swan <[email protected]> wrote: >> Hello, >> >> Our production server stopped processing AJAX requests today. I looked >> in the log files and noticed a "After 1 minute the Pagemap null is >> still locked". >> The exception stack trace is shown below followed by a dump of the >> thread that was blocking the page. >> >> We are using Wicket 1.4.2, Tomcat 6.0 and Java 6. >> >> Could anybody help troubleshoot this problem? >> >> Thanks, >> >> Alec >> >> EXCEPTION >> >> 2010-10-25 21:55:32,501 GMT ERROR [TP-Processor12] >> org.apache.wicket.RequestCycle - >> org.apache.wicket.WicketRuntimeException: After 1 minute the Pagemap >> null is still locked by: Thread[TP-Processor1,5,main], giving up >> trying to get the page for path: 4:offersForm:offers:1:editOfferLink >> Begin of stack trace of Thread[TP-Processor1,5,main] >> java.net.SocketInputStream.socketRead0(Native Method) >> java.net.SocketInputStream.read(SocketInputStream.java:129) >> java.io.BufferedInputStream.fill(BufferedInputStream.java:218) >> java.io.BufferedInputStream.read1(BufferedInputStream.java:258) >> java.io.BufferedInputStream.read(BufferedInputStream.java:317) >> org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:621) >> org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:559) >> >> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:686) >> >> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) >> >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) >> java.lang.Thread.run(Thread.java:619) >> End of stack trace of Thread[TP-Processor1,5,main] >> org.apache.wicket.protocol.http.request.InvalidUrlException: >> org.apache.wicket.WicketRuntimeException: After 1 minute the Pagemap >> null is still locked by: Thread[TP-Processor1,5,main], giving up >> trying to get the page for path: 4:offersForm:offers:1:editOfferLink >> Begin of stack trace of Thread[TP-Processor1,5,main] >> java.net.SocketInputStream.socketRead0(Native Method) >> java.net.SocketInputStream.read(SocketInputStream.java:129) >> java.io.BufferedInputStream.fill(BufferedInputStream.java:218) >> java.io.BufferedInputStream.read1(BufferedInputStream.java:258) >> java.io.BufferedInputStream.read(BufferedInputStream.java:317) >> org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:621) >> org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:559) >> >> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:686) >> >> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) >> >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) >> java.lang.Thread.run(Thread.java:619) >> End of stack trace of Thread[TP-Processor1,5,main] >> at >> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262) >> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479) >> at >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) >> at >> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) >> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) >> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769) >> at >> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698) >> at >> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) >> at >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) >> at java.lang.Thread.run(Thread.java:619) >> Caused by: org.apache.wicket.WicketRuntimeException: After 1 minute >> the Pagemap null is still locked by: Thread[TP-Processor1,5,main], >> giving up trying to get the page for path: >> 4:offersForm:offers:1:editOfferLink >> Begin of stack trace of Thread[TP-Processor1,5,main] >> java.net.SocketInputStream.socketRead0(Native Method) >> java.net.SocketInputStream.read(SocketInputStream.java:129) >> java.io.BufferedInputStream.fill(BufferedInputStream.java:218) >> java.io.BufferedInputStream.read1(BufferedInputStream.java:258) >> java.io.BufferedInputStream.read(BufferedInputStream.java:317) >> org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:621) >> org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:559) >> >> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:686) >> >> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) >> >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) >> java.lang.Thread.run(Thread.java:619) >> End of stack trace of Thread[TP-Processor1,5,main] >> at org.apache.wicket.Session.getPage(Session.java:769) >> at >> org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458) >> at >> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144) >> ... 24 more >> >> >> THREAD DUMP >> >> INFO | jvm 1 | 2010/10/25 18:00:52 | "TP-Processor1" daemon >> prio=10 tid=0x0a615c00 nid=0x47ed runnable [0x8b45c000] >> INFO | jvm 1 | 2010/10/25 18:00:52 | java.lang.Thread.State: RUNNABLE >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.net.SocketInputStream.socketRead0(Native Method) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.net.SocketInputStream.read(SocketInputStream.java:129) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.io.BufferedInputStream.fill(BufferedInputStream.java:218) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.io.BufferedInputStream.read1(BufferedInputStream.java:258) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.io.BufferedInputStream.read(BufferedInputStream.java:317) >> INFO | jvm 1 | 2010/10/25 18:00:52 | - locked <0x995c0d18> (a >> java.io.BufferedInputStream) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:621) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:559) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:686) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) >> INFO | jvm 1 | 2010/10/25 18:00:52 | at >> java.lang.Thread.run(Thread.java:619) >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > > -- > Become a Wicket expert, learn from the best: http://wicketinaction.com > Apache Wicket 1.4 increases type safety for web applications > Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.4.8 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
