xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.46k stars 10.86k forks source link

jetty EOFException错误,触发调度失败 #688

Closed ileeoyo closed 5 years ago

ileeoyo commented 5 years ago

Please answer some questions before submitting your issue. Thanks!

Which version of XXL-JOB do you using?

2.0.1

Expected behavior

Actual behavior

触发调度失败,偶发,半分钟执行一次的job,平均每小时都会失败一两次。 有些job就从来没有出现,有3个job经常出现这个错误。都是内网机器

心跳检测: address:*** code:500 msg:com.xxl.rpc.util.XxlRpcException: java.io.EOFException: HttpConnectionOverHTTP@4b0bfd1d(l:/: <-> r:/:,closed=false)[HttpChannelOverHTTP@16f151cf(exchange=HttpExchange@62f665c6 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@772f1c9a(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@63d8e477(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:277) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1305) at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:182) at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:129) at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69) at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:174) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)

偶尔还有这个错误 心跳检测: address:*** code:500 msg:com.xxl.rpc.util.XxlRpcException: java.nio.channels.AsynchronousCloseException at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.close(HttpConnectionOverHTTP.java:194) at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:180) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745)

Steps to reproduce the behavior

Other information

dongzehong commented 5 years ago

我也出现这样的错误,不知如何解决。另外xxl-job-admin集群部署时,错误频率会提高,我的是1小时约10次错误。

magicFire commented 5 years ago

我这边30秒执行一次,错误就很频繁,一分钟执行一次,就没有报错。30秒是默认的心跳周期,不知道有没有关系

naturn commented 5 years ago

据说是因为Jetty 客户端和服务器端的idletime设置了相同的值,给的建议是idletime服务器值大于客户端的值,不要用默认值.相关链接 http://jetty.4.x6.nabble.com/Fwd-occasional-earlyEOF-exceptions-td4966836.html

xuxueli commented 5 years ago

建议采用Release版本,并且Jetty版本同core包的 ”jetty-server.version“ 保持一致,调度中心与执行器均一致。

最新迭代版本已经废弃Jetty,通讯层默认选型Netty,将会跟随下个版本一同推出,可以体验下。

xuxueli commented 5 years ago

已发布新版本 v2.0.2,废弃了 jetty 通讯方案,改为netty,不会再出现上述问题。

新版 2.0.2 地址:https://github.com/xuxueli/xxl-job/releases/tag/2.0.2