Re: Error "After 1 minute the Pagemap null is still locked"

2010-10-26 Thread Martijn Dashorst
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"

2010-10-26 Thread Alec Swan
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"

2010-10-26 Thread Martijn Dashorst
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"

2010-10-25 Thread Alec Swan
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(