profile
viewpoint

Ask questionsxxl-job provider netty_http server caught exception

lvs每6s检测一次某端口是否存活,不存活则拉出集群,这是个基本的功能。他检测的逻辑是:可以连通的话则发送REST断开连接。 14:04:51.089822 IP 172.21.202.108.42446 > 172.21.202.225.osm-appsrvr: Flags [S], seq 2809835268, win 29200, options [mss 1460,sackOK,TS val 703734022 ecr 0,nop,wscale 7], length 0 14:04:51.089861 IP 172.21.202.225.osm-appsrvr > 172.21.202.108.42446: Flags [S.], seq 650098920, ack 2809835269, win 28960, options [mss 1460,sackOK,TS val 87894096 ecr 703734022,nop,wscale 7], length 0 14:04:51.090030 IP 172.21.202.108.42446 > 172.21.202.225.osm-appsrvr: Flags [.], ack 1, win 229, options [nop,nop,TS val 703734022 ecr 87894096], length 0 14:04:51.090062 IP 172.21.202.108.42446 > 172.21.202.225.osm-appsrvr: Flags [R.], seq 1, ack 1, win 229, options [nop,nop,TS val 0 ecr 87894096], length 0

断开后,触发到xxl-job报错,在旧版本不存在此问题,是新版本引发的

com.xxl.job.core.server.EmbedServer$EmbedHttpServerHandler
>>>>>>>>>>> xxl-job provider netty_http server caught exception
java.io.IOException
at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:233)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:223)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:834)

如果关掉这个健康检查是不会报错了,但这样会导致某机器死掉后不能及时被发现,失去了高可用。所以建议这个放info日志而不是error

Which version of XXL-JOB do you using?

2.2.0

Expected behavior

报个 info日志就行

Actual behavior

报的error,而健康检查5s一次每天就大量的错,大盘直接爆红了

Steps to reproduce the behavior

Other information

xuxueli/xxl-job

Answer questions wchaowu

useful!
source:https://uonfu.com/
Github User Rank List