<< Back to previous view

[QB-764] Error "The session is inactive for a long time" just after a few seconds after WebBrowser start
Created: 06/Dec/10  Updated: 31/Aug/11

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: AlSt Assigned To: Robin Shen
Resolution: Cannot Reproduce Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
QB Version 2.1.48, 2010-07-28

Current QB2 Queue contains many waiting configurations: 100+
I just want to remove them.

I started FireFox and opened QB2 Overview
I clicked: "Queue" and selected 25 checkboxes (waiting configs)
Then I always (reproduceable) get following:
 The session is inactive for a long time (30 mins by default) and is expired to reduce server memory usage.
Error Detail

WicketMessage: Cannot find the rendered page in session [pagemap=null,componentPath=1:tabs:panel:waitingBuilds:builds:form:dataTable:rows:34:cells:1:cell:rowSelector,versionNumber=1]

Root cause:

org.apache.wicket.protocol.http.PageExpiredException: Cannot find the rendered page in session [pagemap=null,componentPath=1:tabs:panel:waitingBuilds:builds:form:dataTable:rows:34:cells:1:cell:rowSelector,versionNumber=1]
at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:197)
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.WicketServlet.doPost(WicketServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
at com.pmease.quickbuild.web.WebServlet.service(WebServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:748)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:219)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

 Comments   
Comment by AlSt [ 06/Dec/10 04:22 AM ]
Same problem with InternetExplorer.
Comment by Robin Shen [ 06/Dec/10 02:22 PM ]
I tried to reproduce but can not succeed by now. Below is what I've done:
1. start with an empty database and configure a scripting step to run below script:
groovy: sleep(10000);
2. create 5 child configurations and set worker of default queue to 1
3. run the child configurations several times, and a number of them will appear as waiting builds in the queue.
4. select all waiting builds and cancel them.

Are there any other steps I need to be aware of to get it reproduced?

Thanks!
Comment by AlSt [ 07/Dec/10 07:23 AM ]
I really tried to narrow down all relevant circumstances. There are not really more... I try it:
 * Info: We have a lot configurations and only a few of them were twice or more in the waiting queue
 * At the beginning about 140 configs were waiting
 * On one page 25 configs are displayed. 6 pages
 * I clicked around between those pages to check what is waiting.
 * Then I started to select 25 configs on page No#5
 * I clicked "Remove selected"
 * WORKED
 * I clicked on page NO#4
 * Again: I selected most of them
 * Again: I clicked "Remove selected"
 * Again: Worked
 * I clicked on page NO#3
 * ___!____
 * Again: Selected about 20 configs
 * Again: I clicked "Remove selected"
 * PROBLEM
 * I opened QB again and saw !!! that some of them were remove and some not.
 * Same procedure again
 * PROBLEM again
 * Now I restarted QB2 !!!
 * Same procedure again
 * PROBLEM again
Comment by Robin Shen [ 07/Dec/10 02:03 PM ]
Thanks for the detail info. The web framework (Wicket) used by QuickBuild currently has the limitation of openning up to 6 tabs or windows in the same http session, otherwise, the page expired error will occur. Please try the procedure again with less browser tabs to see if the issue still exist.
Generated at Sat Sep 27 22:33:57 UTC 2025 using JIRA 189.