Re: Error "After 1 minute the Pagemap null is still locked"
I saw that you are running wicket 1.4.2, I'd upgrade to 1.4.12. Thread detach logic in Wicket has been improved in the releases between iirc. This is not common enough for us to guess what is wrong. You should go back in your logs and see what happened in the thread that keeps the page map locked. If your logging doesn't show anything wrong, at least try to see what type of request (and to which page/component it was targeted). This might leed to more information. Page map locked issues are normally an anxious user double clicking actions while a server is already processing a request. Often a long running request will be the cause, and dispatching the logic into a separate thread helps. But in your situation the thread keeping the lock is already waiting for a new request, so something went wrong in that instance. Martijn On Tue, Oct 26, 2010 at 5:48 PM, Alec Swan wrote: > 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 > 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 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(WebRequestCy
Re: Error "After 1 minute the Pagemap null is still locked"
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 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 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(ApplicationFilte
Re: Error "After 1 minute the Pagemap null is still locked"
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 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)
Error "After 1 minute the Pagemap null is still locked"
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(