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

com.xxl.rpc.util.XxlRpcException: java.io.EOFException #1321

Closed ShuminY closed 4 years ago

ShuminY commented 4 years ago

您好,我们使用的是2.0.1版,今天发现时常会报如下错误,请问应该如何排查:

任务触发类型:Cron触发 调度机器:192.168.0.21 执行器-注册方式:自动注册 执行器-地址列表:[192.168.16.4:19999, 192.168.16.4:9999, 192.168.16.6:19999, 192.168.16.6:9999, 192.168.16.7:19999, 192.168.16.7:9999] 路由策略:分片广播(1/6) 阻塞处理策略:单机串行 任务超时时间:0 失败重试次数:0

触发调度: address:192.168.16.4:9999 code:500 msg:com.xxl.rpc.util.XxlRpcException: java.io.EOFException: HttpConnectionOverHTTP@45d2c43(l:/192.168.0.21:40840 <-> r:/192.168.16.4:9999,closed=false)[HttpChannelOverHTTP@a4d7310(exchange=HttpExchange@3c3dfa02 req=TERMINATED/null@null res=PENDING/null@null)[send=HttpSenderOverHTTP@1a1f2848(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],recv=HttpReceiverOverHTTP@77cd307c(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.base/java.lang.Thread.run(Thread.java:834) at com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean$1.invoke(XxlRpcReferenceBean.java:161) at com.sun.proxy.$Proxy81.run(Unknown Source) at com.xxl.job.admin.core.trigger.XxlJobTrigger.runExecutor(XxlJobTrigger.java:191) at com.xxl.job.admin.core.trigger.XxlJobTrigger.processTrigger(XxlJobTrigger.java:142) at com.xxl.job.admin.core.trigger.XxlJobTrigger.trigger(XxlJobTrigger.java:70) at com.xxl.job.admin.core.thread.JobTriggerPoolHelper$1.run(JobTriggerPoolHelper.java:35) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)

以下截屏是所有任务,其中一直遇到上述异常的是任务7:

截屏2019-11-30上午5 51 14

当我把任务13,14停掉后,这个异常好像就不再发生了:

截屏2019-11-30下午12 10 13

另外,任务3也发现没有按所设时间准时启动,晚于设定时间启动后导致没有足够时间完成任务,而造成后续任务被阻塞丢弃的现象频发,当我把任务13,14停掉后,观察一段时间,任务3的这个阻塞丢弃问题也不再发生了。 任务13,14是最近新加的任务,我们xxl-admin配在2台server上做HA,执行器同时启动了6个,分别运行在3台server上,每台2个,上图任务列表中除了13,14以外的每个任务大约有30多个分片会平均分配到这6个执行器上执行,任务13,14目前只有1个分片。 望能提供指导,如何排查这个问题,多谢了!

xuxueli commented 4 years ago

你好,从日志看是网络问题导致。上面提到任务阻塞,可以调大quartz触发线程进行优化。 (最新版本已经移除了quartz和jetty,更加灵活、方便定制)