私たちはしばらくの間、CF 11 U5 を実行していますが、まったく問題はありません。CF Enterprise は Server 2k12 64 ビットの IIS 8.5 で実行しています。
最近、当社のクライアントの一部から、さまざまなファイルアップロード方法を使用してファイルをアップロードするとエラーが返されるという苦情が寄せられています。これらのエラーは、接続がリセットされた、ページを表示できないなどのブラウザエラーです。
これは、ファイル サイズが 300 ~ 400 KB を超えた場合にのみ発生するようです。他のクライアントの 95% は 200 MB までのファイルを問題なくアップロードできるため、IIS には制限がありません。
これらのアップロードを実行するコードには何も変更されていません。フォーム ポストを備えた標準ページが混在しており、CF は jQuery ファイル アップロード プラグインを使用するいくつかのページに画像をアップロードし、そのプラグインはアップロードを実行する 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% の確率でこの問題を経験しています。つまり、クライアントにとっては断続的な問題ではありません。このエラーはクライアントが試行するたびに表示されます。その他のクライアントにはまったく問題はありません。
このエラーは私が困惑しているところです。ファイルをアップロードしている一部の人にこのエラーが発生する原因は何でしょうか?
何か案は?