2014-03-05 62 views
3

我正在使用maven碼頭插件9.1.2.v20140210版本。自從我開始服務器三次24小時之前我在日誌中獲得這樣的例外:Jetty中的頻繁超時異常

2014-03-04 16:34:01.878:WARN:oejs.HttpChannel:qtp1119397307-111: Commit failed java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms 
     at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:154) 
     at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:722) 2014-03-04 16:34:01.879:WARN:oejs.ServletHandler:qtp1119397307-114: /favicon.ico java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms 
     at org.eclipse.jetty.util.BlockingCallback.block(BlockingCallback.java:101) 
     at org.eclipse.jetty.server.HttpOutput.sendContent(HttpOutput.java:530) 
     at org.eclipse.jetty.servlet.DefaultServlet.sendData(DefaultServlet.java:896) 
     at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:499) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:717) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1644) 
     at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:171) 
     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1615) 
     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) 
     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:568) 
     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221) 
     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1112) 
     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:479) 
     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) 
     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1046) 
     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
     at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199) 
     at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) 
     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
     at org.eclipse.jetty.server.Server.handle(Server.java:459) 
     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:281) 
     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232) 
     at org.eclipse.jetty.io.AbstractConnection$1.run(AbstractConnection.java:505) 
     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) 
     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) 
     at java.lang.Thread.run(Thread.java:722) Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms 
     at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:154) 
     at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:722) 

它一直是每次三個不同的文件。請求日誌中的相關條目似乎是

[04/Mar/2014:21:33:31 +0000] "GET /favicon.ico HTTP/1.1" 200 93062 

據我所知,它對網站沒有不利影響。

我什至不知道從哪裏開始診斷這個問題 - 任何幫助表示讚賞。很高興發佈任何必要的。

回答

0

也許客戶端工作得太慢以至於無法正確創建HTTP連接,所以過了一段時間,您的服務器將針對該特定請求拋出java.util.concurrent.TimeoutException。

在你的情況下可能嗎?

+0

我不確定;雖然,該網站是開放的世界,所以我想像任何類型的客戶端問題可能發生。有沒有辦法讓我檢查? – pail

+0

伐木可能是簡單的方法:D @pail –

+0

哈,夠公平的。但是,你高估了我的能力 - 我應該記錄什麼來確定客戶是否有過錯?我已經收到了請求日誌,但我不確定我是否可以從中得知。 – pail