Comments (12)
netty 支持arm架构的原生epoll可以看下这个commit
可以尝试master分支编译最新版本的包,看下是否可以在arm架构下部署
from cat.
netty 支持arm架构的原生epoll可以看下这个commit
可以尝试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.
第一个报错信息
[ERROR] [AlertManager] test
java.net.UnknownHostException: test
显示的是告警发送有问题,unknownhost,配置的告警发送链接是 test, 无法解析这个域名,因此报错,可以看下数据库中 config这张表的name=senderConfig这个配置,里面配置了告警应该发送的地址,Cat自身没有实现告警发送的功能,他目前是将告警的内容发送到类似独立的告警中心(实现了具体发送逻辑,认证等信息),由独立的告警中心来完成真正的告警发送功能
from cat.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
from cat.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗
from cat.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
客户端的 pom依赖必须跟服务端一致吗,这里服务端用的是最新master编译的cat.war,springboot里面依赖还是以前3.0 3.1的client,有关系吗
应该是不需要的,都是3.x的版本,协议解析应该不影响,目前cat server自身上报的指标可以正常查看吗
from cat.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
客户端的 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.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
客户端的 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.
第二个报错信息看起来像是解码出了问题,好像是预期读取的字节数跟目前实际读取的字节数匹配不上,感觉是不是客户端上报数据有点问题
客户端的 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.
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.
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.
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)
- Cat-client 3.0 heartbeat 配置
- 为什么历史模式里数据都是空的 HOT 5
- 是否支持android安卓app的接入
- 最新版本master(对应v4.0-RC1)部署后Log View为空 HOT 10
- 我爱我家集团
- 客户端注册不上3.1.0
- cat 客户端总是在尝试访问服务器的8080端口,但是我已经改成8000端口了 HOT 1
- 这个自定义监控规则是如何使用的呢
- 【求助】messageId在使用线程池中,能正常传递吗? HOT 1
- logMetricForCount(String name, int quantity, Map<String, String> tags)是否已经不支持
- cat客户端连接报[ERROR] Uncaught exception thrown out of thread(Cat-ChannelManager)
- docker-compose启动后,本地磁盘模式,logview报错“Sorry, the message is not there. It could be missing or archived.” HOT 1
- 使用tomcat9启动cat会报错
- CatFilter如何监控异步Servlet接口?
- 源文件缺少 HOT 1
- docker部署方式下,数据库初始化报错 HOT 1
- cat客户端考虑增加下rust的支持吗
- 请教一下,想把告警发到lark群里,这个要修改代码。 HOT 3
- cat client连接cat server 报错
- python sdk不支持 mac 吗 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cat.