[:断开的管道]异常信息原因探究
生活随笔
收集整理的這篇文章主要介紹了
[:断开的管道]异常信息原因探究
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 問題背景
臨近版本日,測試小姐姐按照往常迭代節奏,督促開發小哥哥們去測試環境跟蹤一下異常日志。然后開發小哥 Z 主動請纓去摟了一圈錯誤日志。突然,遇到一個錯誤,不知道是什么原因,然后發到群里面來讓大家一起研究下。錯誤日志信息如下:
xxx/warn.log-org.apache.catalina.connector.ClientAbortException: java.io.IOException: 斷開的管道 xxx/warn.log- at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:356) ~[tomcat-embed-core-8.5.32.jar!/:8.5.32] ...后面的堆棧信息省略2. 問題分析
既然有堆棧信息,不妨去代碼中跟蹤一下。
在棧頂中提到了一個類 OutputBuffer ,該類位于依賴包:
拋出異常的方法是該類的成員方法:
public void realWriteBytes(ByteBuffer buf) throws IOException {...無關的代碼省略,有興趣的同學可以自行閱讀源碼// An IOException on a write is almost always due to// the remote client aborting the request. Wrap this// so that it can be handled better by the error dispatcher.throw new ClientAbortException(e); // 行數:356 }上述代碼中的注釋已經清晰地給出了答案了:the remote client aborting the request (遠程客戶端摒棄了該請求)。
3. 問題解決
給開發小哥 Z 答復出問題原因:請求端摒棄了本次請求;
本次異常信息日志屬于正常范疇,可以接受。
總結
以上是生活随笔為你收集整理的[:断开的管道]异常信息原因探究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux-(16)管道和重定向
- 下一篇: JZOJ 5911. 【NOIP2018