Git Product home page Git Product logo

Comments (12)

everiu avatar everiu commented on June 7, 2024

netty 支持arm架构的原生epoll可以看下这个commit

4684ba7

可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

netty 支持arm架构的原生epoll可以看下这个commit

4684ba7

可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署


大佬,新master分支,在arm服务器上跑起来了,2280端口映射了,服务器运行正常,cat WEB端功能使用正常,但是观察运行一会以后报了如下错误,还望解答....

[ERROR] [AlertManager] test
java.net.UnknownHostException: test
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
at java.net.Socket.connect(Socket.java:606)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:499)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:594)
at sun.net.www.http.HttpClient.(HttpClient.java:278)
at sun.net.www.http.HttpClient.New(HttpClient.java:375)
at sun.net.www.http.HttpClient.New(HttpClient.java:393)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1354)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1329)
at com.dianping.cat.alarm.spi.sender.AbstractSender.httpPostSend(AbstractSender.java:102)
at com.dianping.cat.alarm.spi.sender.AbstractSender.httpSend(AbstractSender.java:140)
at com.dianping.cat.alarm.spi.sender.MailSender.sendEmail(MailSender.java:76)
at com.dianping.cat.alarm.spi.sender.MailSender.send(MailSender.java:48)
at com.dianping.cat.alarm.spi.sender.SenderManager.sendAlert(SenderManager.java:58)
at com.dianping.cat.alarm.spi.AlertManager.sendRecoveryMessage(AlertManager.java:214)
at com.dianping.cat.alarm.spi.AlertManager.access$400(AlertManager.java:51)
at com.dianping.cat.alarm.spi.AlertManager$RecoveryAnnouncer.run(AlertManager.java:257)
at java.lang.Thread.run(Thread.java:750)
at org.unidal.helper.Threads$RunnableThread.run(Threads.java:344)
[07-19 17:21:06.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68)
java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896)
at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92)
at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48)
at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22)
at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51)
at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
[07-19 17:21:10.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68)
java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463)
at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896)
at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92)
at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48)
at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22)
at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51)
at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)

from cat.

everiu avatar everiu commented on June 7, 2024

第一个报错信息
[ERROR] [AlertManager] test
java.net.UnknownHostException: test
显示的是告警发送有问题,unknownhost,配置的告警发送链接是 test, 无法解析这个域名,因此报错,可以看下数据库中 config这张表的name=senderConfig这个配置,里面配置了告警应该发送的地址,Cat自身没有实现告警发送的功能,他目前是将告警的内容发送到类似独立的告警中心(实现了具体发送逻辑,认证等信息),由独立的告警中心来完成真正的告警发送功能

from cat.

everiu avatar everiu commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗

from cat.

everiu avatar everiu commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗

应该是不需要的,都是3.x的版本,协议解析应该不影响,目前cat server自身上报的指标可以正常查看吗

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗

应该是不需要的,都是3.x的版本,协议解析应该不影响,目前cat server自身上报的指标可以正常查看吗


会是因为 master分支里面 netty是4.0,cat-home里面的Pom文件里面是4.0的,springboot打的包里面用的是3.x的 会影响吗,server运行一会正常就报那个 溢出的错误了

from cat.

everiu avatar everiu commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗

应该是不需要的,都是3.x的版本,协议解析应该不影响,目前cat server自身上报的指标可以正常查看吗

会是因为 master分支里面 netty是4.0,cat-home里面的Pom文件里面是4.0的,springboot打的包里面用的是3.x的 会影响吗,server运行一会正常就报那个 溢出的错误了

那有可能,我看了下,报错来源于下面这个 NM1 协议解析,这个协议我这边还没有了解过,感觉可以尝试用本地编译的4.0的client包,替换掉springboot中的3.x的client依赖;
另外服务端报错会崩溃吗,还是可以正常运行,只是会一直有报错日志

            if ("PT1".equals(hint)) {
		tree = m_plainTextCodec.decode(buf);
	} else if ("NT1".equals(hint)) {
		tree = m_nativeCodec.decode(buf);
	} else if ("NM1".equals(hint)) {
		MetricBag bag = m_metricBagDecoder.decode(buf);
		tree = new DefaultMessageTree();
		tree.setDomain(bag.getDomain());
		tree.setIpAddress(bag.getIpAddress());
		tree.setHostName(bag.getHostName());
		tree.getMetrics().addAll(bag.getMetrics());
	} else {
		throw new RuntimeException("Error message type : " + hint);
	}

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题

客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗

应该是不需要的,都是3.x的版本,协议解析应该不影响,目前cat server自身上报的指标可以正常查看吗

会是因为 master分支里面 netty是4.0,cat-home里面的Pom文件里面是4.0的,springboot打的包里面用的是3.x的 会影响吗,server运行一会正常就报那个 溢出的错误了

那有可能,我看了下,报错来源于下面这个 NM1 协议解析,这个协议我这边还没有了解过,感觉可以尝试用本地编译的4.0的client包,替换掉springboot中的3.x的client依赖; 另外服务端报错会崩溃吗,还是可以正常运行,只是会一直有报错日志

            if ("PT1".equals(hint)) {
		tree = m_plainTextCodec.decode(buf);
	} else if ("NT1".equals(hint)) {
		tree = m_nativeCodec.decode(buf);
	} else if ("NM1".equals(hint)) {
		MetricBag bag = m_metricBagDecoder.decode(buf);
		tree = new DefaultMessageTree();
		tree.setDomain(bag.getDomain());
		tree.setIpAddress(bag.getIpAddress());
		tree.setHostName(bag.getHostName());
		tree.getMetrics().addAll(bag.getMetrics());
	} else {
		throw new RuntimeException("Error message type : " + hint);
	}

我们已经尝试过把spring里面的依赖改为本地编译的4.0的client包,正常启动,但不会上报数据,4.0的client和3.0的client里面的逻辑是有改动对了一下源码,不知道是否是我们改造后没用对,还在排查,服务端启动正常,但是运行一段时间,点几个功能日志里面报:java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68)
后,服务端仪表盘显示 "cat服务端正常",但是其他功能如:state、business、cross报500,客服端停止报送数据或者是服务端接收不到了。

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

netty 支持arm架构的原生epoll可以看下这个commit
4684ba7
可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署

大佬,新master分支,在arm服务器上跑起来了,2280端口映射了,服务器运行正常,cat WEB端功能使用正常,但是观察运行一会以后报了如下错误,还望解答....

[ERROR] [AlertManager] test java.net.UnknownHostException: test at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at java.net.Socket.connect(Socket.java:606) at sun.net.NetworkClient.doConnect(NetworkClient.java:175) at sun.net.www.http.HttpClient.openServer(HttpClient.java:499) at sun.net.www.http.HttpClient.openServer(HttpClient.java:594) at sun.net.www.http.HttpClient.(HttpClient.java:278) at sun.net.www.http.HttpClient.New(HttpClient.java:375) at sun.net.www.http.HttpClient.New(HttpClient.java:393) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1354) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1329) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpPostSend(AbstractSender.java:102) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpSend(AbstractSender.java:140) at com.dianping.cat.alarm.spi.sender.MailSender.sendEmail(MailSender.java:76) at com.dianping.cat.alarm.spi.sender.MailSender.send(MailSender.java:48) at com.dianping.cat.alarm.spi.sender.SenderManager.sendAlert(SenderManager.java:58) at com.dianping.cat.alarm.spi.AlertManager.sendRecoveryMessage(AlertManager.java:214) at com.dianping.cat.alarm.spi.AlertManager.access$400(AlertManager.java:51) at com.dianping.cat.alarm.spi.AlertManager$RecoveryAnnouncer.run(AlertManager.java:257) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:344) [07-19 17:21:06.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750) [07-19 17:21:10.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750)


尝试使用
releases V3.1.0
服务端源码,把里面的client 依赖的netty更改为最新master分支里面的版本,发现catalina.out 没有报错了,但使用一会以后发现服务端又出毛病了,application 点击直接报错500,发现cat服务端日志启动时候报错:
[07-25 14:20:13.132] [INFO] [MVC] MVC started at /cat
[07-25 14:20:13.372] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-19)
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64
at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:331)
at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:171)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:152)
at org.xerial.snappy.Snappy.(Snappy.java:46)
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97)
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89)
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79)
at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92)
at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68)
at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119)
at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159)
at java.lang.Thread.run(Thread.java:750)
at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294)
[07-25 14:20:13.424] [WARN] [DefaultClientConfigManager] error when connect cat server config url http://172.15.244.240:9000/cat/s/router?domain=cat&ip=172.15.244.240&op=json
[07-25 14:20:13.425] [INFO] [ChannelManager] start connect server/172.15.244.240:2280
[07-25 14:20:13.427] [INFO] [ChannelManager] Connected to CAT server at /172.15.244.240:2280
[07-25 14:20:13.435] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-8)
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97)
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89)
at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79)
at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92)
at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68)
at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119)
at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159)
at java.lang.Thread.run(Thread.java:750)
at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294)
[07-25 14:20:23.444] [INFO] [ChannelManager] router config changed :172.15.244.240:2280;

from cat.

everiu avatar everiu commented on June 7, 2024

netty 支持arm架构的原生epoll可以看下这个commit
4684ba7
可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署

大佬,新master分支,在arm服务器上跑起来了,2280端口映射了,服务器运行正常,cat WEB端功能使用正常,但是观察运行一会以后报了如下错误,还望解答....
[ERROR] [AlertManager] test java.net.UnknownHostException: test at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at java.net.Socket.connect(Socket.java:606) at sun.net.NetworkClient.doConnect(NetworkClient.java:175) at sun.net.www.http.HttpClient.openServer(HttpClient.java:499) at sun.net.www.http.HttpClient.openServer(HttpClient.java:594) at sun.net.www.http.HttpClient.(HttpClient.java:278) at sun.net.www.http.HttpClient.New(HttpClient.java:375) at sun.net.www.http.HttpClient.New(HttpClient.java:393) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1354) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1329) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpPostSend(AbstractSender.java:102) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpSend(AbstractSender.java:140) at com.dianping.cat.alarm.spi.sender.MailSender.sendEmail(MailSender.java:76) at com.dianping.cat.alarm.spi.sender.MailSender.send(MailSender.java:48) at com.dianping.cat.alarm.spi.sender.SenderManager.sendAlert(SenderManager.java:58) at com.dianping.cat.alarm.spi.AlertManager.sendRecoveryMessage(AlertManager.java:214) at com.dianping.cat.alarm.spi.AlertManager.access$400(AlertManager.java:51) at com.dianping.cat.alarm.spi.AlertManager$RecoveryAnnouncer.run(AlertManager.java:257) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:344) [07-19 17:21:06.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750) [07-19 17:21:10.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750)

尝试使用 releases V3.1.0 服务端源码,把里面的client 依赖的netty更改为最新master分支里面的版本,发现catalina.out 没有报错了,但使用一会以后发现服务端又出毛病了,application 点击直接报错500,发现cat服务端日志启动时候报错: [07-25 14:20:13.132] [INFO] [MVC] MVC started at /cat [07-25 14:20:13.372] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-19) org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64 at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:331) at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:171) at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:152) at org.xerial.snappy.Snappy.(Snappy.java:46) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79) at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92) at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294) [07-25 14:20:13.424] [WARN] [DefaultClientConfigManager] error when connect cat server config url http://172.15.244.240:9000/cat/s/router?domain=cat&ip=172.15.244.240&op=json [07-25 14:20:13.425] [INFO] [ChannelManager] start connect server/172.15.244.240:2280 [07-25 14:20:13.427] [INFO] [ChannelManager] Connected to CAT server at /172.15.244.240:2280 [07-25 14:20:13.435] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-8) java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79) at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92) at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294) [07-25 14:20:23.444] [INFO] [ChannelManager] router config changed :172.15.244.240:2280;

org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64 这个报错是snappy这个压缩算法依赖找不到native library对应的系统架构的本地依赖实现

看起来比较奇怪,因为master分支和3.1.0分支,这个snappy依赖的版本都是一样的,都是1.1.2,从他的代码来看
https://github.com/xerial/snappy-java/blob/master/src/main/java/org/xerial/snappy/OSInfo.java

os.arch=aarch64 这个应该很早就添加了,或许可以升级下版本看下,但是不是太确定,相比于x86架构,arm架构可能会存在一些兼容性问题

https://mvnrepository.com/artifact/org.xerial.snappy/snappy-java

from cat.

tangfan123 avatar tangfan123 commented on June 7, 2024

netty 支持arm架构的原生epoll可以看下这个commit
4684ba7
可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署

大佬,新master分支,在arm服务器上跑起来了,2280端口映射了,服务器运行正常,cat WEB端功能使用正常,但是观察运行一会以后报了如下错误,还望解答....
[ERROR] [AlertManager] test java.net.UnknownHostException: test at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:196) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) at java.net.Socket.connect(Socket.java:606) at sun.net.NetworkClient.doConnect(NetworkClient.java:175) at sun.net.www.http.HttpClient.openServer(HttpClient.java:499) at sun.net.www.http.HttpClient.openServer(HttpClient.java:594) at sun.net.www.http.HttpClient.(HttpClient.java:278) at sun.net.www.http.HttpClient.New(HttpClient.java:375) at sun.net.www.http.HttpClient.New(HttpClient.java:393) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1354) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1329) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpPostSend(AbstractSender.java:102) at com.dianping.cat.alarm.spi.sender.AbstractSender.httpSend(AbstractSender.java:140) at com.dianping.cat.alarm.spi.sender.MailSender.sendEmail(MailSender.java:76) at com.dianping.cat.alarm.spi.sender.MailSender.send(MailSender.java:48) at com.dianping.cat.alarm.spi.sender.SenderManager.sendAlert(SenderManager.java:58) at com.dianping.cat.alarm.spi.AlertManager.sendRecoveryMessage(AlertManager.java:214) at com.dianping.cat.alarm.spi.AlertManager.access$400(AlertManager.java:51) at com.dianping.cat.alarm.spi.AlertManager$RecoveryAnnouncer.run(AlertManager.java:257) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:344) [07-19 17:21:06.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750) [07-19 17:21:10.137] [ERROR] [ByteToMessageDecoder] readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) java.lang.IndexOutOfBoundsException: readerIndex(15) + length(55) exceeds writerIndex(68): PooledUnsafeDirectByteBuf(ridx: 15, widx: 68, cap: 68) at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1477) at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1463) at io.netty.buffer.AbstractByteBuf.readBytes(AbstractByteBuf.java:896) at com.dianping.cat.message.codec.NativeMetricBagDecoder$Context.readString(NativeMetricBagDecoder.java:92) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decodeMetric(NativeMetricBagDecoder.java:48) at com.dianping.cat.message.codec.NativeMetricBagDecoder.decode(NativeMetricBagDecoder.java:22) at com.dianping.cat.message.CodecHandler.decode(CodecHandler.java:51) at com.dianping.cat.analysis.TcpSocketReceiver$MessageDecoder.decode(TcpSocketReceiver.java:163) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:750)

尝试使用 releases V3.1.0 服务端源码,把里面的client 依赖的netty更改为最新master分支里面的版本,发现catalina.out 没有报错了,但使用一会以后发现服务端又出毛病了,application 点击直接报错500,发现cat服务端日志启动时候报错: [07-25 14:20:13.132] [INFO] [MVC] MVC started at /cat [07-25 14:20:13.372] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-19) org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64 at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:331) at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:171) at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:152) at org.xerial.snappy.Snappy.(Snappy.java:46) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79) at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92) at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294) [07-25 14:20:13.424] [WARN] [DefaultClientConfigManager] error when connect cat server config url http://172.15.244.240:9000/cat/s/router?domain=cat&ip=172.15.244.240&op=json [07-25 14:20:13.425] [INFO] [ChannelManager] start connect server/172.15.244.240:2280 [07-25 14:20:13.427] [INFO] [ChannelManager] Connected to CAT server at /172.15.244.240:2280 [07-25 14:20:13.435] [ERROR] [CatClientModule$CatThreadListener] Uncaught exception thrown out of thread(Cat-DefaultMessageProcessor 2023-07-25 14:00:00-8) java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:97) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:89) at org.xerial.snappy.SnappyOutputStream.(SnappyOutputStream.java:79) at org.unidal.cat.message.storage.internals.DefaultBlock.createOutputSteam(DefaultBlock.java:92) at org.unidal.cat.message.storage.internals.DefaultBlock.(DefaultBlock.java:68) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.processMessage(DefaultMessageProcessor.java:119) at org.unidal.cat.message.storage.internals.DefaultMessageProcessor.run(DefaultMessageProcessor.java:159) at java.lang.Thread.run(Thread.java:750) at org.unidal.helper.Threads$RunnableThread.run(Threads.java:294) [07-25 14:20:23.444] [INFO] [ChannelManager] router config changed :172.15.244.240:2280;

org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=aarch64 这个报错是snappy这个压缩算法依赖找不到native library对应的系统架构的本地依赖实现

看起来比较奇怪,因为master分支和3.1.0分支,这个snappy依赖的版本都是一样的,都是1.1.2,从他的代码来看 https://github.com/xerial/snappy-java/blob/master/src/main/java/org/xerial/snappy/OSInfo.java

os.arch=aarch64 这个应该很早就添加了,或许可以升级下版本看下,但是不是太确定,相比于x86架构,arm架构可能会存在一些兼容性问题

https://mvnrepository.com/artifact/org.xerial.snappy/snappy-java


问题已经解决 升级了 3.1源码包里面的netty依赖,和org.xerial.snappy.SnappyError 这个报错包的依赖,服务端问题跑了一晚上,数据报送也正常,感谢回复!!!!!!!!!1

from cat.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.