Wicket 1.5 locks access to the same page instance by more than one thread at
a time.
You can set log level to DEBUG
for org.apache.wicket.page.PageAccessSynchronizer class and see which thread
acquires the lock for page with version 0 and never releases it.

Instead of going to previous version of Wicket better go to a newer one.

On Mon, May 23, 2011 at 3:38 PM, Jim Pinkham <pinkh...@gmail.com> wrote:

> I'm using wicket 1.5 RC3 and just started getting some total system lockups
> recently in prod that I can't understand.
>
> Once it gets into this state, the only remedy is to restart tomcat.
> Unfortunately, I haven't yet figured out how to reproduce this, so
> meanwhile
> I thought I'd ask if someone could please help me understand how page
> locking works in general and what I should be looking for.
>
> When I think of locking I usually think of threading, so not sure if it
> matters, but I do start one a thread for email sending with the Application
> thread local set for it also (because I manage data sources thru the app so
> it was easier that way).  I could try refactoring that, but without a
> reproducable test case, it's just a guess at this point.  My other plan
> would be to revert to some older wicket version, but again, just a guess.
>
> Here is the stack trace; nothing unusual precedes it.  (This is just a user
> trying to visit the home page).  The only thing I notice is that these
> issues all seem to be using the PageParameter version of the page
> constructor.
>
> tomcat stuff omitted..
> ...
> Caused by: java.lang.reflect.InvocationTargetException
>    at sun.reflect.GeneratedConstructorAccessor9.newInstance(Unknown Source)
>    at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>    at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:153)
>    ... 27 more
> Caused by: org.apache.wicket.page.CouldNotLockPageException: Could not lock
> page 0. Attempt lasted 1 minute
>    at
>
> org.apache.wicket.page.PageAccessSynchronizer.lockPage(PageAccessSynchronizer.java:138)
>    at
>
> org.apache.wicket.page.PageAccessSynchronizer$1.touchPage(PageAccessSynchronizer.java:194)
>    at org.apache.wicket.Page.dirty(Page.java:327)
>    at org.apache.wicket.Page.init(Page.java:779)
>    at org.apache.wicket.Page.<init>(Page.java:223)
>    at org.apache.wicket.Page.<init>(Page.java:202)
>    at org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:99)
>    at
>
> com.togetherauction.ui.AbstractAuctionPage.<init>(AbstractAuctionPage.java:31)
>    at com.togetherauction.ui.HomePage.<init>(HomePage.java:33)
>    ... 31 more
> WARN  - PageAccessSynchronizer     - http-80-15 failed to acquire lock to
> page 0, attempted for 1 minute out of allowed 1 minute
> ERROR - DefaultExceptionMapper     - Unexpected error occurred
> org.apache.wicket.WicketRuntimeException: Can't instantiate page using
> constructor public
>
> com.togetherauction.ui.HomePage(org.apache.wicket.request.mapper.parameter.PageParameters)
> and argument
>    at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:173)
>    at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:91)
>    at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:43)
>    at org.apache.wicket.DefaultMapperContext.newPageInstance
>
> I could use a hand here - anyone want to give me some advise?
>
> Thanks,
> -- Jim
> http://togetherauction.com
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Reply via email to