2014-03-05 313 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