We are getting ready to put our first Lucee server into production today,
but I decided to do a rudimentary load test of a page in my development
environment beforehand (holding down F5 for about a 30 seconds to a minute
to initiate a solid stretch of requests).
I noticed I was able to consistently kill my app doing this. It throws an
exception that specifies java.lang.ThreadDeath and then repeatedly shows
the same exception:
java.lang.StackTraceElement[]{lucee.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:60)
The exception only takes down a single host and it’s context. All other
hosts continue to run just fine, but the one I take down will not recover
without a restart of the service.
I had someone take the same code and test it on our previous install using
Railo (some where in the 4.2 version) and while I was able to kill the
instance there too, it was a different in the way that it took down every
host on the instance and had a different exception altogether.
If anyone has any ideas as to whether or not we have an issue with our
configuration, I’d appreciate it as I am somewhat uncomfortable adding this
server to our production pool before I better understand what the issue is
here. I thought it might be related to the database configuration itself,
but then I thought how could the other hosts/contexts continue to run fine
when they rely on the same datasource?
Here is an example of our database connection:
And here is the stack trace:
2015-09-11 14:53:35 Commons Daemon procrun stderr initialized
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:850)
at lucee.commons.io.StopThread.run(SystemUtil.java:1068)
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:850)
at lucee.commons.io.StopThread.run(SystemUtil.java:1068)
java.lang.StackTraceElement[]{lucee.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:60)
,lucee.runtime.db.DatasourceManagerImpl.getConnection(DatasourceManagerImpl.java:77)
,lucee.runtime.tag.Query.executeDatasoure(Query.java:726)
,lucee.runtime.tag.Query.doEndTag(Query.java:559)
,query.query_cfc$cf.udfCall(C:\workspace\snap\framework\ORM\Query\Query.cfc:113)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:216)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:642)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
,lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1777)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:773)
,lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1599)
,query_cfm$cf.call(C:\workspace\snap\framework\ORM\Query.cfm:53)
,lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:950)
,lucee.runtime.tag.CFTag.doInclude(CFTag.java:323)
,lucee.runtime.tag.CFTag.cfmlEndTag(CFTag.java:260)
,lucee.runtime.tag.CFTag.doAfterBody(CFTag.java:205)
,orm_cfc$cf.udfCall3(C:\workspace\snap\framework\ORM\ORM.cfc:576)
,orm_cfc$cf.udfCall(C:\workspace\snap\framework\ORM\ORM.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,orm_cfc$cf.udfCall4(C:\workspace\snap\framework\ORM\ORM.cfc:824)
,orm_cfc$cf.udfCall(C:\workspace\snap\framework\ORM\ORM.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:641)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
,lucee.runtime.ComponentImpl.call(ComponentImpl.java:1760)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,model.authorization_cfc$cf.udfCall(C:\workspace\snap\corporate\model\Authorization.cfc:8)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:216)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:642)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
,lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1777)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:773)
,lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1599)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:215)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:137)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall1(C:\workspace\snap\framework\core\ObjectLoader.cfc:130)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:249)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:239)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:211)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall2(C:\workspace\snap\framework\core\ObjectLoader.cfc:137)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:766)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,core.objectloader_cfc$cf.udfCall1(C:\workspace\snap\framework\core\ObjectLoader.cfc:130)
,core.objectloader_cfc$cf.udfCall(C:\workspace\snap\framework\core\ObjectLoader.cfc)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:216)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:642)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
,lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1777)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:773)
,lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1599)
,core.fwengine_cfc$cf.udfCall(C:\workspace\snap\framework\core\fwEngine.cfc:23)
,lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
,lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
,lucee.runtime.type.UDFImpl.call(UDFImpl.java:229)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:641)
,lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
,lucee.runtime.ComponentImpl.call(ComponentImpl.java:1760)
,lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:742)
,lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1589)
,base.index_cfm$cf.call(C:\workspace\snap\framework\base\index.cfm:8)
,lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:950)
,lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:854)
,index_cfm$cf.call(C:\workspace\snap\corporate\index.cfm:1)
,lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:950)
,lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:902)
,lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:223)
,lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:35)
,lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2257)
,lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2224)
,lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456)
,lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:47)
,javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
,org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
,org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
,org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
,org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
,org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
,org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
,org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
,org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
,org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
,org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
,org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
,org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
,org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
,org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
,org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
,org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
,org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
,org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
,org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
,org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
,org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
,org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
,ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:191)
,org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
,org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
,org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
,org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2516)
,org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2505)
,java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
,java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
,org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
,java.lang.Thread.run(Thread.java:745)
}