cfhttp timeout doesn't work with lucee 4.5.2.008 and java 8 jre

376 views
Skip to first unread message

Bruce Kirkpatrick

unread,
Nov 1, 2015, 4:51:41 PM11/1/15
to Lucee
It seems cfhttp lucee 4.5.2.008 with java 8 as JRE doesn't work with cfhttp timeout attribute.    It is so bad that the global requesttimeout doesn't work either, which means that you can run out of available tomcat threads, and effectively be offline.   For some reason it ran for 128 seconds and then said "request timeout occured!".   My system is not configured for 128 seconds, it is configured to 50 seconds in the web admin.  This timeout of 128 seconds is something happening at the java level to prevent server hang I guess.

Instead of timing out according to CFHTTP, the HTTP tag runs until the global request timeout is reached.  This may cause other problems like the following 2 exception log entries and it may have allowed tomcat server to run out of threads due to these slow httpd calls because my symptoms were mysterious connection failures until I rebooted everything.  It was also failing to execute the application.cfc onError function.   I had to find this in requesttimeout.log instead.     There was an http call in my app that is no longer functioning (hangs instead of 404), so I'm not trying to debug this.  Just reporting the issue.

Was this fixed already in a newer version by chance?

"ERROR","Thread-319","11/01/2015","16:25:11","","Thread.stop(Throwable) is not supported by this JVM and failed with UnsupportedOperationException;java.lang.Throwable;java.lang.Throwable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at lucee.runtime.tag.Executor41.execute(Http41.java:1468)
at lucee.runtime.tag.Http41._doEndTag(Http41.java:992)
at lucee.runtime.tag.Http41.doEndTag(Http41.java:622)
at lucee.runtime.tag.HttpImpl.doEndTag(HttpImpl.java:223)
at vanndata_com.hp_cfm$cf.call(/var/jetendo-server/jetendo/sites/vanndata_com/hp.cfm:12)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:953)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:857)
at init.onrequest_cfm$cf.udfCall(/var/jetendo-server/jetendo/core/init/onRequest.cfm:66)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:227)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:641)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1760)
at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:405)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:221)
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:35)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2264)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2227)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2440)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


"ERROR","Thread-319","11/01/2015","16:25:11","",";org.apache.tomcat.util.threads.TaskThread.stop0(java.lang.Object);java.lang.NoSuchMethodException: org.apache.tomcat.util.threads.TaskThread.stop0(java.lang.Object)
at java.lang.Class.getMethod(Class.java:1786)
at lucee.commons.io.StopThread.run(SystemUtil.java:1071)
"
"ERROR","Thread-319","11/01/2015","16:25:12","","could not stop the thread on the first approach;java.lang.Throwable;java.lang.Throwable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at lucee.runtime.tag.Executor41.execute(Http41.java:1468)
at lucee.runtime.tag.Http41._doEndTag(Http41.java:992)
at lucee.runtime.tag.Http41.doEndTag(Http41.java:622)
at lucee.runtime.tag.HttpImpl.doEndTag(HttpImpl.java:223)
at vanndata_com.hp_cfm$cf.call(/var/jetendo-server/jetendo/sites/vanndata_com/hp.cfm:12)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:953)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:857)
at init.onrequest_cfm$cf.udfCall(/var/jetendo-server/jetendo/core/init/onRequest.cfm:66)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:111)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:328)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:227)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:641)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:524)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1760)
at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:405)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:221)
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:35)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2264)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2227)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:456)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2440)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
"

Bruce Kirkpatrick

unread,
Nov 1, 2015, 4:53:53 PM11/1/15
to Lucee
Simple code to reproduce problem:

<cfsetting requesttimeout="10">
<cftry>
<cfhttp url="http://hp.sharedvue.net/sharedvue/pull/?svhost=www.vanndata.com/" method="GET" timeout="5" resolveurl="No" throwOnError="No"/>
ok
<cfcatch type="Any">
fail
</cfcatch>
</cftry>


if by chance that url starts working again, then you won't experience the problem.  at the moment, it is a non functional url, which is intentional in this example.

AWDSOFT

unread,
Nov 2, 2015, 3:13:44 PM11/2/15
to Lucee
Hi Bruce,

I just wanted to add that I've noticed a similar problem with database calls. I had a couple queries that were running pretty long and they would die with a similar message:

java.lang.ThreadDeath at java.lang.Thread.stop(Thread.java:850):850 at lucee.commons.io.StopThread.run(SystemUtil.java:1068):1068 at lucee.runtime.exp.NativeException.<init>

In our case, the thread still seemed to be killed ok since I haven't seen them piling up in FusionReactor.

I noticed at least one other post around the web talking about Thread.stop() being depricated in Java 8 so hopefully it's just a small adjustment for Lucee to get things running right.

AWDSOFT

unread,
Nov 2, 2015, 6:59:11 PM11/2/15
to Lucee
Quick follow up on my comment about fixing the "Thread.stop()" issue: looks like Micha already fixed the bug for version 4.5.2+ so just have to wait for that release.

Aaron Terry

unread,
Nov 3, 2015, 1:50:04 PM11/3/15
to lu...@googlegroups.com
Looks like the current preview release is 4.5.2.017. So the fix should be included there.

Anyone running 4.5.2.017 in production?





--
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lucee/ac88c3b0-1638-4560-a908-83da9e342bbe%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Brad Wood

unread,
Dec 23, 2015, 8:59:09 PM12/23/15
to Lucee
Is anyone still getting this error?  I've got a server filling gigabytes of log files with this error.  I'm on Java 8, but I've been on Lucee 4.5.2.018 for a while so in theory I should have the fix in LDEV-436.


;Thread.stop(Throwable) is not supported by this JVM and failed with UnsupportedOperationException;java.lang.Throwable;java.lang.Throwable
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.SocketInputStream.read(SocketInputStream.java:170)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782)
        at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4881)
        at com.microsoft.sqlserver.jdbc.TDSReader.nextPacket(IOBuffer.java:4791)
        at com.microsoft.sqlserver.jdbc.TDSReader.ensurePayload(IOBuffer.java:4767)
        at com.microsoft.sqlserver.jdbc.TDSReader.peekTokenType(IOBuffer.java:4961)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:50)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1510)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.processResults(SQLServerStatement.java:1157)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.processBatch(SQLServerStatement.java:1145)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.processExecuteResults(SQLServerStatement.java:1137)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.processResponse(SQLServerPreparedStatement.java:357)
        at com.microsoft.sqlserver.jdbc.TDSCommand.close(IOBuffer.java:5781)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.discardLastExecutionResults(SQLServerStatement.java:94)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.closeInternal(SQLServerStatement.java:584)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.closeInternal(SQLServerPreparedStatement.java:170)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.close(SQLServerStatement.java:596)
        at lucee.runtime.db.driver.StatementProxy.close(StatementProxy.java:189)
        at lucee.commons.db.DBUtil.closeEL(DBUtil.java:88)
        at lucee.runtime.type.QueryImpl.<init>(QueryImpl.java:282)
        at lucee.runtime.type.QueryImpl.<init>(QueryImpl.java:204)
        at lucee.runtime.type.scope.storage.db.Ansi92.clean(Ansi92.java:186)
        at lucee.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner.clean(DatasourceStorageScopeCleaner.java:72)
        at lucee.runtime.type.scope.storage.clean.DatasourceStorageScopeCleaner._clean(DatasourceStorageScopeCleaner.java:56)
        at lucee.runtime.type.scope.storage.clean.StorageScopeCleanerSupport.clean(StorageScopeCleanerSupport.java:59)
        at lucee.runtime.type.scope.storage.StorageScopeEngine.clean(StorageScopeEngine.java:44)
        at lucee.runtime.type.scope.ScopeContext.clearUnused(ScopeContext.java:727)
        at lucee.runtime.engine.Controler.control(Controler.java:263)
        at lucee.runtime.engine.Controler.control(Controler.java:214)
        at lucee.runtime.engine.Controler.access$000(Controler.java:59)
        at lucee.runtime.engine.Controler$ControlerThread.run(Controler.java:110)

;;lucee.runtime.engine.Controler$ControlerThread.stop0(java.lang.Object);java.lang.NoSuchMethodException: lucee.runtime.engine.Controler$ControlerThread.sto$
        at java.lang.Class.getMethod(Class.java:1786)
        at lucee.commons.io.StopThread.run(SystemUtil.java:1085)

Andrew Dixon

unread,
Dec 24, 2015, 3:46:50 AM12/24/15
to lu...@googlegroups.com
Hi Brad,

I believe that error is from a request timeout and is fixed in 4.5.2.001 - https://luceeserver.atlassian.net/browse/LDEV-436


Kind regards,

Andrew

--
Love Lucee? Become a supporter and be part of the Lucee project today! - http://lucee.org/supporters/become-a-supporter.html
---
You received this message because you are subscribed to the Google Groups "Lucee" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lucee+un...@googlegroups.com.
To post to this group, send email to lu...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages