History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-764
Type: Bug Bug
Status: Resolved Resolved
Resolution: Cannot Reproduce
Priority: Critical Critical
Assignee: Robin Shen
Reporter: AlSt
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Error "The session is inactive for a long time" just after a few seconds after WebBrowser start

Created: 06/Dec/10 04:20 AM   Updated: 31/Aug/11 03:29 AM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
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)

 All   Comments   Work Log   Change History      Sort Order:
AlSt [06/Dec/10 04:22 AM]
Same problem with InternetExplorer.

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!

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

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.