For the TL;DR: check your cookies... Fun story follows... We just solved a strange bug in our own application where users were logged out after a certain, but random amount of time, and where other users reported being thrown out every 5 minutes.
We couldn't discover what happened, and after logging everything sessionid related, we noticed two cookies being sent (that we added ourselves in the application). Looking at the client side of things, we finally saw that we were generating those 2 cookies for each path in the application—which was really increased since we introduced bookmarkable URLs... It appears that browsers have a limit for the amount of cookies per domain, and that each browser behaves differently when the limit is reached: - safari/chrome: no limit what soever - IE: 50 cookies, FIFO - FF: 50 cookies, random eviction Since we convinced many of our users to switch to firefox, they got thrown out at random times... Only the die hards with 'conservative' sys admins that are using IE were thrown out consistently. So long story short: check your cookies. Martijn On Tue, Jun 21, 2011 at 5:17 PM, Igor Vaynberg <[email protected]> wrote: > if this was a load issue we would hear a ton of complaints on the list. > > -igor > > On Tue, Jun 21, 2011 at 5:37 AM, Brown, Berlin [GCG-PFS] > <[email protected]> wrote: >> I posted this the other day, I think I have some more information. >> >> Is there a way to change the session secondlevel cache store and >> possibly the default disk store such that there aren't collissions >> between file writes/reads. >> >> I think in a high volume environment (lots of hits), I am getting this >> pageexpiredexception because wicket is trying to access to the diskpage >> store data the same time. >> >> E.g. Are multiple writes/reads allowed against the >> diskpagestore/DiskPageStoreIndex? >> >> >> - ------------- >> >> I get two pageexpiredexception errors and I can't recreate the problem. >> With an error like this, what would cause this type of page expired >> exception error? >> >> Do you think that the page actually expired? Or is there something >> wrong with writing or reading from the page map file on disk. >> >> >> ERROR ONE: >> >> 2011-05-06 23:21:43,619 ERROR - >> Cannot find the rendered page in session >> [pagemap=null,componentPath=2:contentPanelContainer:contentPanel:panel:f >> ield,versionNumber=0] >> org.apache.wicket.protocol.http.PageExpiredException: Cannot find the >> rendered page in session >> [pagemap=null,componentPath=2:contentPanelContainer:contentPanel:panel:f >> ield,versionNumber=0] >> at >> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequ >> estCycleProcessor.java:197) >> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484 >> ) >> at >> org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java: >> 160) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) >> at >> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.ja >> va:1146) >> at >> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrap >> per.java:592) >> at >> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWr >> apper.java:525) >> at >> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548) >> at >> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:269) >> at >> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:831 >> ) >> at >> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1 >> 478) >> at >> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:1 >> 33) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio >> n(HttpInboundLink.java:458) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio >> n(HttpInboundLink.java:387) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpIC >> LReadCallback.java:102) >> at >> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallba >> ck.complete(SSLReadServiceContext.java:1818) >> at >> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(Ai >> oReadCompletionListener.java:165) >> at >> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture. >> java:217) >> at >> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFu >> ture.java:161) >> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) >> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196) >> at >> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java >> :751) >> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881) >> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497) >> .... >> >> ERROR TWO: >> >> Request cannot be processed >> org.apache.wicket.protocol.http.PageExpiredException: Request cannot be >> processed >> at >> org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequ >> estCycleProcessor.java:163) >> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484 >> ) >> at >> org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java: >> 160) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) >> at >> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.ja >> va:1146) >> at >> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrap >> per.java:592) >> at >> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWr >> apper.java:525) >> at >> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548) >> at >> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:269) >> at >> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:831 >> ) >> at >> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1 >> 478) >> at >> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:1 >> 33) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio >> n(HttpInboundLink.java:458) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio >> n(HttpInboundLink.java:387) >> at >> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpIC >> LReadCallback.java:102) >> at >> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallba >> ck.complete(SSLReadServiceContext.java:1818) >> at >> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(Ai >> oReadCompletionListener.java:165) >> at >> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture. >> java:217) >> at >> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFu >> ture.java:161) >> at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) >> at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196) >> at >> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java >> :751) >> at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881) >> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497) >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Become a Wicket expert, learn from the best: http://wicketinaction.com --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
