我们一直在运行CF 11 U5,现在没有任何问题。 我们在Server 2k12 64bit的IIS 8.5上运行CF Enterprise。
最近,我们的一些客户一直在抱怨,当他们通过我们的各种file upload方法上传文件时,他们得到错误。 这些错误是浏览器错误,告诉他们连接已被重置,或页面不能显示等
这似乎只发生在文件大小超过300-400kb。 我们在IIS中没有任何限制,因为95%的其他客户端在上传200MB文件时没有问题。
任何运行这些上传的代码都没有改变。 我们有标准的页面和表单的混合,然后CF将图像上传到一些使用jQueryfile upload插件的页面,这些插件发布到上传的CF页面。
似乎并没有上传任何东西,并且用户在开始上传的2-5秒内相当快地返回错误。 上传的文件是通常的图像(jpg)或zip文件。
这似乎只影响有限的人数。 当我试图复制这个问题,从我身边上传相同的文件,我从来没有看到这个问题,一切工作正常。 我们很多其他客户也没有问题上传。
看着IIS日志,他们得到了400错误。 失败的请求日志告诉我一个不好的请求。
在查看Coldfusion错误日志时,他们尝试下面的错误:
org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [CfmServlet] in context with path [/] threw exception java.io.IOException: Socket read failed at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:325) at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:447) at org.apache.coyote.ajp.AjpProcessor.receive(AjpProcessor.java:343) at org.apache.coyote.ajp.AbstractAjpProcessor.refillReadBuffer(AbstractAjpProcessor.java:685 ) at org.apache.coyote.ajp.AbstractAjpProcessor$SocketInputBuffer.doRead(AbstractAjpProcessor. java:1209) at org.apache.coyote.Request.doRead(Request.java:430) at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:290) at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:449) at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:315) at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:200) at com.oreilly.servlet.multipart.BufferedServletInputStream.fill(BufferedServletInputStream. java:64) at com.oreilly.servlet.multipart.BufferedServletInputStream.readLine(BufferedServletInputStr eam.java:108) at com.oreilly.servlet.multipart.LimitedServletInputStream.readLine(LimitedServletInputStrea m.java:60) at com.oreilly.servlet.multipart.PartInputStream.fill(PartInputStream.java:93) at com.oreilly.servlet.multipart.PartInputStream.read(PartInputStream.java:191) at com.oreilly.servlet.multipart.PartInputStream.read(PartInputStream.java:152) at com.oreilly.servlet.multipart.FilePart.write(FilePart.java:252) at com.oreilly.servlet.multipart.FilePart.writeTo(FilePart.java:211) at coldfusion.filter.FormScope.fillForm(FormScope.java:338) at coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:512) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:151) at coldfusion.CfmServlet.service(CfmServlet.java:219) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42 ) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:241) 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:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.jav a:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
这个问题影响到我们的一些客户,但他们正在经历100%的时间。 所以对他们来说这不是一个间歇性的问题 这个错误出现在他们所做的每一个尝试。 对于我们所有的其他客户,他们完全没有问题。
这个错误是我难住的地方。 什么可能导致这个错误selectless数人上传文件?
有任何想法吗?