嚴重:servlet [CfmServlet] 的 Servlet.service() 在路徑 [/] 的上下文中拋出異常

嚴重:servlet [CfmServlet] 的 Servlet.service() 在路徑 [/] 的上下文中拋出異常

我們已經運行 CF 11 U5 一段時間了,沒有任何問題。我們在 Server 2k12 64 位元的 IIS 8.5 上執行 CF Enterprise。

最近,我們的一些客戶抱怨說,當他們透過我們的各種文件上傳方法上傳文件時,會出現錯誤。這些錯誤是瀏覽器錯誤,告訴它們連接已重置,或頁面無法顯示等。

這種情況似乎只有在檔案大小超過 300-400kb 時才會發生。我們在 IIS 中沒有任何限制,因為我們 95% 的其他客戶上傳最大 200MB 的檔案都沒有問題。

運行這些上傳的任何程式碼都沒有發生任何變化。我們混合了具有表單 post 的標準頁面,然後 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% 都遇到過這個問題。所以這對他們來說不是一個間歇性的問題。他們每次嘗試時都會出現此錯誤。對於我們所有其他客戶來說,他們完全沒有問題。

這個錯誤是我困惑的地方。對於少數上傳文件的人來說,什麼可能會導致此錯誤?

有任何想法嗎?

相關內容