Hi all,
I recently upgraded a few clustered servers to Lucee 5.2.4.37 (latest stable a.f.a.i.k.), from 5.0.x. They are using a datasource for session and client scope storage, with “sessionCluster” and “clientCluster” enabled.
Since I did the Lucee upgrade, I am having major problems with requestTimeouts almost daily. If the situation occurs, all requests in a few minutes will timeout, with the stacktrace underneath. That means tens to hundreds of errors. 2 times, Tomcat needed a restart to overcome this (it kept going at 100% cpu).
Looking at the stacktrace, timeouts occur in
which is a “synchronized” method, meaning (if I recall correctly), only one request can execute it at any given time.
I also found the stacktrace of the first erroring request, which was one step further, at
That stacktrace is also underneath, and indicates the request is waiting for “DatasourceConnectionPool.getDatasourceConnection”.
Meaning, if the datasource is unavailable for a specific request, all other requests will hang untill a request timeout occurs.
Is anyone else having these issues? I already created a ticket for it, but no me-too’s yet
Kind regards, Paul Klinkenberg
Stacktrace of all error pages, except the first request:
lucee.runtime.exp.RequestTimeoutException: request /index.cfm (/var/www/clientname/www/index.cfm) has run into a timeout (50 seconds) and has been stopped. at lucee.runtime.type.scope.storage.IKStorageScopeSupport.hasInstance(IKStorageScopeSupport.java:213) at lucee.runtime.type.scope.ScopeContext.hasExistingCFSessionScope(ScopeContext.java:549) at lucee.runtime.type.scope.ScopeContext.hasExistingSessionScope(ScopeContext.java:487) at lucee.runtime.PageContextImpl.initApplicationContext(PageContextImpl.java:3030) at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:119) at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43) at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2405) at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2395) at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2363) at lucee.runtime.engine.Request.exe(Request.java:46) at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1084) at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1032) at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102) at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
** Stacktrace of the first request**
stop thread (66) because run into a timeout path: /var/www/myclientname/www/index.cfm (/var/www/myclientname/www/Application.cfc).;java.lang.Throwable;java.lang.Throwable at lucee.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:77) at lucee.runtime.type.scope.storage.IKHandlerDatasource.loadData(IKHandlerDatasource.java:36) at lucee.runtime.type.scope.storage.IKStorageScopeSupport.hasInstance(IKStorageScopeSupport.java:213) at lucee.runtime.type.scope.ScopeContext.hasExistingCFSessionScope(ScopeContext.java:549) at lucee.runtime.type.scope.ScopeContext.hasExistingSessionScope(ScopeContext.java:487) at lucee.runtime.PageContextImpl.initApplicationContext(PageContextImpl.java:3030) at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:119) at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43) at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2405) at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2395) at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2363) at lucee.runtime.engine.Request.exe(Request.java:46) at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1084) at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1032) at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102) at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)